大数据Hadoop学习六

本文介绍Hadoop 2.0版本的重要改进,包括HDFSHA解决单点故障、HDFSFederation实现水平扩展、以及YARN框架替代MapReduce 1.0,解决了资源管理及任务调度等问题。

1、Hadoop的改进

    Hadoop 1.0到2.0的改进分为MapReduce和HDFS架构的演进。另一方面,不断加入kafka,spark,pig,tez等新的组件。

    Hadoop2.0 针对HDFS涉及了HDFS HA,提供名称节点的热备份;

    设计了HDFS Federation管理多个命名空间;

    涉及了新的资源管理框架YEAR。

2、HDFS HA解决单点故障问题

     HA集群设置两个名称节点,Active和Standby状态,一旦活跃状态出现故障,可以切换到到Standby备用节点。Zookeeper确保只有一个名称节点对外服务,名称节点维护映射信息,数据节点同时向两个名称节点汇报信息。

   名称节点共享存储系统来同步状态。

3、HDFS Federation

     因为HDFS 2.0中,名称节点的集群,使得HDFS的命名空间可以水平扩展,这些名称节点分别进行各自的命名空间和块的管理,相互之间是联盟Federation的关系,不需要彼此协调。HDFS Federation中,所有的名称节点共享底层数据节点,数据节点向所有的名称节点汇报。

   属于同一个命名空间的块构成了一个块池。

4、HDFS Federation的访问

    对于多个命名空间,可以采用客户端挂载表方式进行数据的共享访问。客户端访问不同的挂载点来访问不同的命名空间。

   Federation使得HDFS集群可以更方便的扩展,并且名称节点的管理更高效,提供良好的隔离性;但是不能解决单点故障问题。

5、YARN框架

    MapReduce 1.0缺陷:

   1)单点故障;

   2)JobTracker任务过重,任务多时内存开销大,上线4000节点,多了出现故障概率大;

   3)容易出现内存溢出,分配资源只考虑MapReduce任务数,不考虑CPU和内存

  4)资源划分不合理,强制划分slot.

6、YARN体系结构

    ResourceManager:处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源划分和调度

    NodeManager:单个节点上的资源管理;处理来自ResourceManager的命令;处理来自ApplicationManager的命令;

    ApplicationMaster:为应用程序申请资源,并分配给内部任务;任务调度、监控、容错 ;


    ResourceManager是一个全局的资源管理器,负责整个系统的资源管理和分配,主要包括了调度器Scheduler和应用程序管理器Applications Manager。

    Scheduler接收来自ApplicationMaster的应用程序资源请求,会把集群中的资源以容器的方式分配给申请的应用程序,容器的选择会考虑应用程序所需处理数据的位置,进行就近选择,实现计算向数据靠拢;

    容器Container作为动态分配的资源单位,封装了一定的cpu、内存、磁盘等资源,从而限定每个应用程序的使用量;

   调度器设计为可插拔组件,YARN不仅自身提供资源调度器,也允许用户自定义;

   Applications Managerr负责集群中所有的应用程序的管理工作,主要包括应用程序提交,与资源调度器协商资源,启动ApplicationMaster,监控ApplicationMaster运行状态,并在失败时重启等。

   ResourceManager接收用户提交的作业,按照作业上下文信息以及从NodeManager收集的容器状态信息,启动调度过程,为作业分配一个ApplicationMaster。



   ApplicationMaster作用:

   用户提交一个作业的时候,ApplicationMaster与ResourceManager协商获取资源,ResourceManager将资源以Container方式分配给ApplicationMaster;

   ApplicationMaster把获得的资源进一步分配格内部各个任务,实现资源的二次分配;

  与NodeManager保持通信,进行应用程序的启动、运行、监控和停止,监控申请到的资源使用情况,对所有任务的执行进度、任务状态进行监控,并在任务失败时重新执行;

  定时向ResourceManager发送消息,报告资源的使用情况和应用的进度信息;

 作业完成时,向ResourceManager注销容器,回收资源。


  NodeManager作用:

   NodeManager是驻留在YARN集群中每个节点上的代理,主要负责:

   容器生命周期管理。 

  监控每个容器的资源使用情况;

  跟踪节点的健康状态

  心跳方式与ResourceManager保持通信;

  向ResourceManager汇报作业的资源只用情况和每个容器的状态

   接收来自ApplicationMaster的启动/停止容器请求。

   需要注意的是:NodeManager只处理与容器相关的事情,不具体负责作业的状态管理,ApplicationMaster处理作业相关的管理。

7、YARN工作流程

  1)用户编写客户端应用程序,向YARN提交应用程序,提交的内容包括ApplicationMaster程序,启动ApplicationMaster命令,用户程序等;

   2)YARN的ResourceManager接收来自客户端的请求,为应用程序分配一个容器,在该容器中启动一个ApplicationMaster。

   3)ApplicationMaster被创建后,向ResourceManager注册

   4)ApplicationMaster轮询的方式向ResourceManager申请资源

    5)ResourceManager以容器的形式分配资源给ApplicationMaster;

   6)在容器中启动任务

   7)各个任务向ApplicationMaster汇报状态和进度

   8)应用程序完成后,ApplicationMaster向ResourceManager的Applications Manager注销并关闭自己。

8、YRAN的目的是一个集群多个框架



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值