Hadoop1.0的局限-MapReduce

hadoop odps 区别 简述hadoop1.0与hadoop2.0的优缺点_资源管理

 

•扩展性

–集群最大节点数–4000

–最大并发任务数–40000

(当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。)

•可用性

–JobTracker负载较重

–存在单点故障, 一旦故障,

    所有执行的任务的全部失败

•批处理模式,时效性低

–仅仅使用MapReduce一种计算方式

•低效的资源管理

–把资源强制划分为 map task slot 和 reduce task slot, 当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费

 


 

 

 

Hadoop2.0 新特性:YARN-架构及组件

 

hadoop odps 区别 简述hadoop1.0与hadoop2.0的优缺点_资源管理_02

 

YARN 是Hadoop 2.0 中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度。

•ResourceManager

–处理客户端请求

–启动/监控ApplicationMaster

–监控NodeManager

–资源分配与调度

•NodeManager

–单个节点上的资源管理

–处理来自ResourceManager的命令

–处理来自ApplicationMaster的命令

•ApplicationMaster

–数据切分

–为应用程序申请资源,并分配给内部任务

–任务监控与容错

 

 

 

YARN-MRv2作业处理流程

 

步骤1 用户向YARN 中提交应用程序, 其中包括ApplicationMaster 程序、启动ApplicationMaster 的命令、用户程序等。

步骤2 ResourceManager 为该应用程序分配第一个Container, 并与对应的NodeManager 通信,要求它在这个Container 中启动应用程序的ApplicationMaster。

步骤3 ApplicationMaster 首先向ResourceManager 注册, 这样用户可以直接通过ResourceManage 查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。

步骤4 ApplicationMaster 采用轮询的方式通过RPC 协议向ResourceManager 申请和领取资源。

步骤5 一旦ApplicationMaster 申请到资源后,便与对应的NodeManager 通信,要求它启动任务。

步骤6 NodeManager 为任务设置好运行环境(包括环境变量、JAR 包、二进制程序

等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。

步骤7 各个任务通过某个RPC 协议向ApplicationMaster 汇报自己的状态和进度,以让ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC 向ApplicationMaster 查询应用程序的当前运行状态。

步骤8 应用程序运行完成后,ApplicationMaster 向ResourceManager 注销并关闭自己。