Hadoop基础知识点(二)

Hadoop YARN

YARN

通用的统一资源管理系统: 同时运行长应用程序和短应用程序
长应用程序: 通常情况下,永不停止运行
短应用程序: 短时间(秒、分钟、小时、数月)内会运行结束的程序

ResourceManager

全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配。

功能:

  1. 处理客户端请求run jar — client获取ApplicationMaster
  2. 启动/监控ApplicationMaster
  3. 监控NodeManager
  4. 资源分配与调度

NodeManager

NodeManager管理抽象容器,这些容器代表可供应该特定应用程序使用的针对每个节点的资源。(yarnchuld)
定时地向ResourceManager汇报本节点上资源使用情况和各个container的运行情况

功能:

  1. 单个节点上的资源管理和任务管理(监控生命周期)
  2. 处理来自ResourceManager的命令
  3. 处理来自ApplicationMaster的命令

ApplicationMaster

管理一个在YARN内运行的应用,这个应用在每个container中的进程都交给ApplicationMaster管理

功能:

  1. 数据切分(找寻数据在那个节点上,并且在这个节点上启动container)
  2. 为应用程序申请资源,并进一步分配给内部任务
  3. 任务监控与容错
  4. 负责协调来自ResourceManager的资源,并通过NodeManager监控容器的执行和资源使用(cpu、内存等资源分配)

container

YARN的资源抽象,封装弄节点上多维度资源时,如内存、CPU、磁盘、网络等,当ApplicationMaster向ResourceManager申请资源时,ResourceManager向ApplicationMaster返回的资源是用container表示的。
YARN会为每一个任务分配应该container,而且该任务只能使用该container中描述资源
功能:

  1. 对任务运行环境的抽象
  2. 描述一系列信息
  3. 任务运行资源(节点、内存、CPU)
  4. 任务启动命令
  5. 任务运行环境

YARN架构图

在这里插入图片描述

YARN运行流程

  1. clien端进行提交任务 代码块(mr),打成jar包
  2. 进入到ResourceManager,ResourceManager会将任务放到应该队列中,因为分配的资源有限,所以遵循FIFO(先进先出)的策略
  3. 启动ApplicationMaster(每个应用对应启动一个)
  4. ApplicationMaster也是一个进程,这个进程也需要资源,container也需要,所有会在所有的DataNode中生成一个container,不是为了运行代码,而是专门为ApplicationMaster进行使用的
  5. 启动container中的ApplicationMaster进程
  6. ApplicationMaster启动后会向ResourceManager进行注册,然后反向进行资源申请
  7. ResourceManager会将资源以列表的形式分发给ApplicationMaster
  8. ApplicationMaster会找到相应的container,进行任务的运行
  9. 启动container中的任务进程(yarnchild)
  10. 进行监控,监控任务运行的状态和运行速度,故障切换
  11. ApplicationMaster会一直进行监控,直到最后一个container运行完毕
  12. container就会被收回
  13. ApplicationMaster会取消和ResourceManager的注册
  14. 进程自行毁掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值