hadoop1.x和hadoop2.x区别
1.Hadoop1.X就是第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成
2.Hadoop2.0即第二代Hadoop。
hadoop2中可以让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,彻底解决了NameNode单点故障问题;Hadoop2中引入了资源管理框架Yarn。。同时Yarn作为Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如Tez、Spark、Storm等
2.HDFS组成架构及其作用
-
Hadoop Distributed File System (HDFS):分布式文件系统
-
HDFS组成有:namenode,datanode,SecondaryNamenode
-
Hdfs存储形式:存储在HDFS上的文件是以块(block)的形式存储的,Hadoop2.x的版本中默认块的大小是128M。
-
HDFS本质上来将就是用来存储数据和上传数据下载数据用的
-
Namenode(NN):主节点,存储文件的元数据(文件名,文件目录结构,文件属性(生成时间,副本数,文件权限等))
DataNode(DN):在本地文件系统存储文件数据,以及块数据的校验和(长度、创建时间、CRC32校验和)。
SecondaryNameNode(SNN):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。定时的将NameNode的镜像文件和编辑日志文件合并为一个文件,叫做新镜像文件。辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode;
在紧急情况下,可辅助恢复NameNode
HDFS的上传流程
HDFS的下载流程
3.yarn组成和作用
a)Yarn主要由ResourceManager、NodeManager、ApplicationMaster、和Container组成。
1)ResourceManager的作用如下:
1.处理客户端的请求
2.监控NodeManager
3.启动或监控ApplicationMaster
4.资源分配与调度
2)NodeManager的作用如下:
1.管理单个节点上的资源
2.处理来自ResourceManager的命令
3.处理来自ApplicationMaster的命令
2)ApplicationMaster的作用如下:
1.负责数据的切分
2.为应用程序申请资源并分配给内部的任务
3.任务的监控与容错
4)Container的作用:
1.Container是Yarn中的资源抽象,它封装了某个节点上的多维资源,如内存、CPU、磁盘、网络等。
(1)MR程序提交到客户端所在的节点。
(2)YarnRunner向ResourceManager申请一个Application。
(3)RM将该应用程序的资源路径返回给YarnRunner。
(4)该程序将运行所需资源提交到HDFS上。
(5)程序资源提交完毕后,申请运行mrAppMaster。
(6)RM将用户的请求初始化成一个Task。
(7)其中一个NodeManager领取到Task任务。
(8)该NodeManager创建容器Container,并产生MRAppmaster。
(9)Container从HDFS上拷贝资源到本地。
(10)MRAppmaster向RM 申请运行MapTask资源。
(11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。
(12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据 分区排序。
(13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。
(14)ReduceTask向MapTask获取相应分区的数据。
(15)程序运行完毕后,MR会向RM申请注销自己。
4.MapReduce组成和作用
MapReduce是一个分布式运 算程序的编程框架,是用户开发“ 基于Hadoop的
数据分析应用”的核心框架。
MapReduce包含四个组成部分,分别为Client,JobTracker,TaskTracker,Task。
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个
完整的分布式运算程序,并发运行在一个Hadoop集群 上。