YARN学习笔记

来源:互联网 发布:新浪微博淘宝卖家认证 编辑:程序博客网 时间:2024/05/29 20:03

HADOOP 1.x的缺陷:

1,可扩展性差,jobtracker 承担了作业控制和资源分配两项功能。

2,可靠性差,设计使用slave/master 结构,存在单点问题。

3,资源利用率低,map,reduce之间会出现资源空闲。

4,无法兼容其他计算架构,如storm,spark等。


YARN的优势:

1,资源利用率高

2,减少了运维成本

3,数据共享


YARN 结构划分:

1,ResourceManager :用于资源分配

<1> 调度器:根据容量,队列等限制条件分配资源。最小单位为 “资源容器” (resource container)

<2>应用程序管理器:与调度器协商资源启动ApplicationMaster ,并监控AM,失败需重启。


2,ApplicationMaster : 用于任务调度

<1> 与RM协商获取资源(container)

<2>将得到的任务进一步非配给内部任务

<3>与NM通信已启动/停止任务

<4>监控任务状态,失败重启任务


3,NodeManager

<1>NM是每个节点上的资源和任务管理器,向RM汇报container运行情况和资源使用情况。

<2>接收并处理AM的Container启动/停止等请求。


4,Container

<1>动态资源划分单位,根据应用程序需要动态划分。

<2>支持CPU和内存划分,使用了轻量级资源隔离机制Cgroups 进行资源隔离


工作流程:

1,client 向YARN提交应用程序,包括AM程序,启动AM命令,用户程序等。

2,RM位程序分配Container,并与NM通信,要求他在Container 中启动应用程序AM。

3,AM向RM注册,用户通过RM可以直接查看程序运行状态。申请资源,监控任务运行状况,直到结束。(4-7步骤)

4,AM采用轮询方式通过RPC申请和领取资源。

5,AM申请到资源后,与NM沟通,启动任务。

6,NM设置运行环境(jar包,环境变量),通过脚本启动任务。

7,各个任务通过RPC向AM汇报任务运行情况和进度,可以在任务失败时及时重启任务。

8,任务完成后,AM向RM申请注销和关闭自己。


新特性:

1,append功能,可以追加文件内容,以这种形式修改HDFS文件。

2,HDFS RAID:新的分布式文件系统(Distributed Raid File System),采用Erasule codes 增强对数据的保护,有效的减少副本数。

3,Symlink:hdfs符号连接,类似软连接。

4,Security: 通过Kerberos 和 DeletionToken 实现安全验证和授权机制。

5,Namenode Federation:横向扩展多个Namenode,分管目录。可以解决内存扩展问题。

6,Namenode HA:Namenode 热备份实现,避免单点故障。



0 0
原创粉丝点击