三、分布式资源调度YARN

一、YARN的产生背景

背景1

背景2

由此催生了YARN

二、XXX on YARN

XXX on YARN 架构

三、资源调度框架:作业提交先到ResourceManager,RM会到一个NM上启动一个AM.AM去向RM申请资源,然后通知对应的NM启动一些Container,运行task

1.ResourceManager: RM

  • 整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度
  • 处理客户端的请求: 提交一个作业、杀死一个作业
  • 监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM来如何进行处理

2.NodeManager: NM

  • 整个集群中有多个,负责自己本身节点资源管理和使用
  • 定时向RM汇报本节点的资源使用情况
  • 接收并处理来自RM的各种命令:启动Container
  • 处理来自AM的命令
  • 单个节点的资源管理
  1. ApplicationMaster: AM
  • 每个应用程序对应一个:MR、Spark,负责应用程序的管理
  • 为应用程序向RM申请资源(core、memory),分配给内部task
  • 需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面

4.Container

  • 封装了CPU、Memory等资源的一个容器
  • 是一个任务运行环境的抽象
  1. Client
  • 提交作业
  • 查询作业的运行进度
  • 杀死作业

四、YARN的执行流程

YARN的执行流程
  • 用户向YARN提交作业
  • RM和对应的NM进行通信,要求在这个NM上启动一个Container,这个Container是用来启动应用程序的ApplicationMaster的,
  • AM向RM进行注册,这样用户就可以通过RM来查询作业的运行情况。同时AM向RM申请了资源
  • 申请到后在对应的NM上启动Container,运行任务。

五、YARN环境搭建

YARN的配置文件

1. mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

2. yarn-site.xml

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

3.启动YARN相关的进程

sbin/start-yarn.sh

4. 验证

jps
    ResourceManager
    NodeManager
http://hadoop000:8088

5. 停止YARN相关的进程

sbin/stop-yarn.sh

提交mr作业到YARN上运行:
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar

hadoop jar

hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容