Spark Yarn-cluster 与 Yarn-client

  摘要

  在Spark中,有Yarn-Client和Yarn-Cluster两种模式可以运行在Yarn上,通常Yarn-cluster适用于生产环境,而Yarn-Cluster更适用于交互,调试模式,以下是它们的区别

  Spark插拨式资源管理

  Spark支持Yarn,Mesos,Standalone三种集群部署模式,它们的共同点:Master服务(Yarn ResourceManager,Mesos master,Spark standalone)来决定哪些应用可以运行以及在哪什么时候运行,Slave服务(Yarn NodeManger)运行在每个节点上,节点上实际运行着Executor进程,此外还监控着它们的运行状态以及资源的消耗

  Spark alt="" width="550" height="476" />

  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注册汇报并完成相应的任务

  下表是Spark Standalone与Spark alt="物联网" width="511" height="195" />