Yarn on cluster 与 Yarn on client

Yarn-cluster


  在Yarn-cluster模式下,driver运行在Appliaction Master上,Appliaction Master进程同时负责驱动Application和从Yarn中申请资源,该进程运行在Yarn container内,所以启动Application Master的client可以立即关闭而不必持续到Application的生命周期,下图是yarn-cluster模式
  这里写图片描述

Yarn-cluster模式下作业执行流程:
  1. 客户端生成作业信息提交给ResourceManager(RM)
  2. RM在某一个NodeManager(由Yarn决定)启动container并将Application Master(AM)分配给该NodeManager(NM)
  3. NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
  4. Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
  5. Executor向NM上的Application Master注册汇报并完成相应的任务

Yarn-client


  在Yarn-client中,Application Master仅仅从Yarn中申请资源给Executor,之后client会跟container通信进行作业的调度,下图是Yarn-client模式
  这里写图片描述

Yarn-client模式下作业执行流程:
  1. 客户端生成作业信息提交给ResourceManager(RM)
  2. RM在本地NodeManager启动container并将Application Master(AM)分配给该NodeManager(NM)
  3. NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
  4. Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
  5. Executor向本地启动的Application Master注册汇报并完成相应的任务

对比


  • yarn-client 与yarn-cluster的区别就在于driver所在的位置,yarn-client driver运行在client端,yarn-cluster driver 运行在Application Master内 。
  • yarn-cluster中client只需要将app提交过去,剩下的都不用自己管了,RM分配一个container运行AM,剩下的都是由AM与RM交互,而yarn-client中,client提交的是app commands,也就是说,client是要管具体任务调度的,而AM只是负责听从指挥来申请资源。
  • yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。

猜你喜欢

转载自blog.csdn.net/qq_32038679/article/details/80610155