Hadoop 2.0与Hadoop1.0的区别

in 大数据 with 0 comment

Hadoop 框架对比

1.框架简介

Hadoop1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。

Hadoop2.0即第二代Hadoop,由分布式存储系统HDFS、MapReduce和YARN三个系统组成,其中YARN是一个资源管理系统,负责集群资源管理和调度,MapReduce则是运行在YARN上的离线处理框架,称为MRv2(MapReduce的第二版)。Yarn作为Hadoop2.0中的资源管理系统,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现。并且Yarn是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如Tez、Spark、Storm等。

1.png

2.二者区别

hadoop1.0中的JobTracker和TaskTracker在hadoop2中被ResourceManager、ApplicationMaster、NodeManager三个部分替代。JobTracker一分为二,对应于ResourceManager和ApplicationMaster;TaskTracker对应于NodeManager。

重点:JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。

hadoop 1.0和2.0优缺点

1.hadoop 1.0

JobTracker必须不断跟踪所有TaskTracker和所有map、reduce任务,因为TaskTracker上的任务都是JobTracker来分配的。

2.hadoop 2.0 优点

如下图,左边是hadoop 1.0的作业过程,右边是hadoop 2.0的作业过程。hadoop1.0是分配的slot资源单位,一个slot类似于是cpu和内存资源的一个打包,是资源分配的基础单位,hadoop2.0是一个对应的AppMaster(也是一个普通的Container容器)和由AM向RM申请然后在NM上分配的Container容器执行进程,完成作业任务。
2.png

Yarn 组件

ResourceManager

Yarn提交过程

客户端向hadoop主节点上的RM提交任务,RM先在一个NodeManager上面启动AM对接客户端Job,AM再根据实际需要向RM申请更多Container资源,在对应的从节点启动Container并执行相关进程(Spark在container里则是线程,MR为一个进程包含map和reduce进程)。

3.png

Yarn的容错

RM:避免单点故障,基于ZooKeeper实现HA高可用,通过配置备用RM,主提供服务,备同步主的信息,一旦主挂掉,则立即切换继续进行服务。
NM:NM节点本身就不止一个,当一个挂掉后,会通过心跳方式通知RM,RM的AppManager会进一步处理上面的AM。
AM:若挂掉,RM负责重启,RM的AppManager保存了已经完成的task,若重启AM,无需重新运行已完成的task。

Responses