对于很多人来说,大数据=Hadoop,大数据的相关技术源自Google的分布式计算和分布式文件系统(GFS),基于Google提出的分布式计算和文件系统,Apache Hadoop实现了自己的MapReduce和HDFS(Hadoop File System),并将其分享出来形成开源社区。如今Hadoop的开源社区发展地如火如荼,在MapReduce和HDFS的基础上Apache Hadoop发展出了更完善的生态系统,Hadoop2.0以上的版本核心组件有MapReduce计算架构、HDFS分布式文件系统、资源管理系统YARN和Common组件,其整体的生态构成图如下
相对于Hadoop 1.0,Hadoop 2.0加入了新的YARN组件,YARN是Yet another resource negotiator 的简称,总体上采用了双层调度架构,主要有以下几部分构成
(1)Resource Manager:负责资源管理的主服务,负责跟踪资源使用情况和节点活跃度,资源管理、调度和监控,它支持可插拔的资源调度器,自带了FIFO、Fair Scheduler和Capacity Scheduler三种调度器;
(2) Node Manager:是YARN的后台程序,负责认证Container租约,管理Container的从属,监控它们的执行情况。运行在每个节点上,负责资源管理和监控,它定期向Resource Manager汇报资源使用情况、故障和Container的生命周期,并接收来自Application Master的命令以启动Container(YARN中对资源的抽象),回收Container等;
(3)Application Master:负责管理单个应用程序,它向Resource Manager申请资源,负责动态改变资源消耗,管理执行流程,处理故障和计算偏差;
(4)Container:对资源的抽象,它封装了某个节点上的CPU、内存等资源,ApplicationMaster只有获得一个Container后才能启动任务,另外,ApplicationMaster本身也是运行在一个Container之中。