大数据学习_Hadoop
1 Hadoop简介1.1 Hadoop是什么?Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个适合大数据的分布式存储和计算平台。主要解决:海量数据的存储和海量数据的分析计算问题。狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架。1.2 Hadoop发行版本Apache Hadoop 原始版本(最原始的版本,适合入门
·
Hadoop简介
Hadoop是什么?
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个适合大数据的分布式存储和计算平台。
主要解决:海量数据的存储和海量数据的分析计算问题。
狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态
圈,包括很多其他软件框架。
Hadoop发行版本
- Apache Hadoop 原始版本(最原始的版本,适合入门学习)
官网地址:http://hadoop.apache.org/
优点:拥有全世界的开源贡献,代码更新版本比较快
缺点:版本的升级,版本的维护,以及版本之间的兼容性,学习非常方便
Apache所有软件的下载地址(包括各种历史版本):http://archive.apache.org/dist/ - 软件收费版本ClouderaManager(生产环境使用)
官网地址:https://www.cloudera.com/
Cloudera主要是美国一家大数据公司在Apache开源Hadoop的版本上,通过自己公司内部的各种
补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版
本的升级困难,版本兼容性等各种问题,生产环境强烈推荐使用 - 免费开源版本HortonWorks HDP版本(生产环境使用)
官网地址:https://hortonworks.com/
hortonworks主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,
核心产品软件HDP(ambari),HDF免费开源,并且提供一整套的web管理界面,供我们可以通
过web界面管理我们的集群状态,web管理界面软件HDF网址(http://ambari.apache.org/)
Hadoop优缺点
Hadoop的优点
- 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具
有高效性。 - 高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。
Hadoop的缺点 - Hadoop不适用于低延迟数据访问。
- Hadoop不能高效存储大量小文件。
- Hadoop不支持多用户写入并任意修改文件。
Apache Hadoop的重要组成
Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块
- Hadoop HDFS:(Hadoop Distribute File System)一个高可靠、高吞吐量的分布式文件系统。
作用:数据切割、制作副本、分散储存
比如:100T数据存储,分:拆分–>数据切割,100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块。
- Client:客户端,文件上传 HDFS 的时候,客户端将文件切分成一个一个的Block,然后进行存储。与NameNode交互,获取文件的位置信息。与DataNode交互,读取或者写入数据。Client提供一些命令来管理HDFS,比如启动或者关闭HDFS,Client可以通过一些命令来访问HDFS。
- NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副
本数、文件权限),以及每个文件的块列表和块所在的DataNode等。 - SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台
程序,每隔一段时间获取HDFS元数据快照。 - DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验
- Hadoop MapReduce:一个分布式的离线并行计算框架
作用:拆解任务、分散处理、汇整结果
MapReduce计算 = Map阶段 + Reduce阶段。Map阶段就是“分”的阶段,并行处理输入数据;Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总。
- Hadoop YARN:作业调度与集群资源管理的框架
作用:计算资源协调
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
- NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
- ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
- Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
总结:ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。
- Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)