美文网首页
MR on Yarn / Spark on Yarn/

MR on Yarn / Spark on Yarn/

作者: Eqo | 来源:发表于2022-06-09 18:06 被阅读0次

Hadoop Yarn的好处

  • 资源管理和任务调度统一
  • 公司资源统一分配
  • 任务多种模式调度

MR ON YARN

image.png

流程
1.首先客户端提交mr程序,向rm请求资源,运行APP master
2.RM收到请求后,会根据集群资源使用情况和,会分配一台node manger,预留容器资源.
3.客户端,在这台容器内启动app master,am 启动后会跟客户端 和rm 注册监听,保持心跳,汇报给rm 任务执行情况
4.AM 根据本次逻辑切片的个数 与rm 申请对应的task任务的资源
5.rm收到分配资源的请求后并不会马上就分配资源,而是请求的信息在调度队列中 原则(fifo,队列调度)等
6.当调度到自己的时候,am 到rm分配的容器上面 运行task任务(map task reduce task)
7 task任务启动后需要跟rm 保持监听,汇报自己的任务执行情况
8.当所有task任务运行结束后, AM跟rm汇报任务执行完毕及最终状态,并且申请回收资源,最后am向rm注销自己,并释放资源

Spark 应用服务

当Spark Application运行到Hadoop YARN上时,提交应用指定master为yarn
需要启动 yarn集群 job histroy服务
启动 spark history服务

(base) [root@node1 ~]# start-dfs.sh
# WEB UI:http://node1.itcast.cn:9870/

(base) [root@node1 ~]# start-yarn.sh
# WEB UI:http://node1.itcast.cn:8088/

## 第二、启动MRHistoryServer服务,在node1执行命令
mapred --daemon start historyserver
# WEB UI:http://node1.itcast.cn:19888/

## 第三、启动Spark HistoryServer服务,,在node1执行命令
/export/server/spark-yarn/sbin/start-history-server.sh
# WEB UI:http://node1.itcast.cn:18080/

spark on yarn

spark应用角色
Driver program (spark 应用老大):负责具体job调度
Executor 执行者:负责具体Task任务的执行

spark on yarn deploy-mode

spark应用 submit有两种部署模式

  • client 客户端模式
    Driver 负责调度执行Job
    AppMaster 负责向yarn 的 resource manager 申请资源
  • cluster 集群模式
    cluster:两者合并,Driver运行在AppMaster内部

1_Spark on Yarn client

image.png

流程:
spark 应用提交到客户端
1.一个spark 应用在submit 提交之后 就会在本地启动一个 Driver program
2.启动后的Driver program 会向 RM申请分配资源启动AppMaster
3.RM收到请求后 会在其合适的node_manager上分配一个Containe容器,并在容器内启动一个AppMaster
4 APPmaster 会根据spark 应用提交的设置 去向RM申请对应分配的Executor个数的资源
5.RM会在合适的node manger 上分配对应容器 启动 executor ,启动后的executor 会向Driver 反向注册并保持心跳

  1. Driver会调度对应的task 任务到 executor上执行

2_Spark on Yarn cluster

image.png
流程
1.spark 应用提交到yarn上
2.yarn会在响应的nodemanager 上分配一个containe容器去启动AppMaster(只要有应用提交给yarn 都会启动) ,此时的Appmaster 就是Driver program(合二为一 即负责job调度 由负责申请资源)
3.Appmaster 会向yarn 申请对应的executor 执行的资源, rm收到申请后在响应的nodemanger上 分配容器 启动executor 进程
4.启动后的executor 会向Appmaster 反向注册 保持心跳
5.Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个 stage生成对应的taskSet,之后将task分发到各个Executor上执行;

相关文章

网友评论

      本文标题:MR on Yarn / Spark on Yarn/

      本文链接:https://www.haomeiwen.com/subject/egdemrtx.html