摘要
在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" />