Spark中yarn-client与yarn-cluster的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了罗山免费建站欢迎大家使用!
摘要:
spark有两种方式运行在yarn上,一种是yarn-client客户端模式,一种是yarn-cluster模式。两种模式有一定的不同点。
一、Application Master
为了更好的理解这两种模式的区别先了解下Yarn的Application Master概念。在Yarn中,每个application都有一个Application Master进程,它是Appliaction启动的第一个容器,它负责从ResourceManager中申请资源,分配资源,同时通知NodeManager来为Application启动container,Application Master避免了需要一个活动的client来维持,启动Applicatin的client可以随时退出,而由Yarn管理的进程继续在集群中运行。
二、yarn-client模式
在yarn-client端中,spark的driver是在提交代码的客户端client上面,这个机器可以不是yarn集群中的机器。Application Master仅仅从yarn中为spark executor 申请资源,之后client端会一直与yarn container保持通信,进行作业的调度。
yarn-client模式下作业执行流程:
1、客户端生成作业信息提交给Resource Manager(RM)。
2、RM在本地NodeManager启动container,并将Application Master(AM)分配给该NodeManager(NM)。
3、NodeManager接收到Resource Manager(RM)的分配信息,启动Application Master(AM)并初始化作业。
4、ApplicationMaster向RM申请资源,分配资源并通知其它的NodeManager启动Executor。
5、Executor向ApplicationMaster注册并汇报作业进度,启动task任务。
三、yarn-cluster模式
在yarn-cluster模式中,driver是运行在Application Master上的。Appliaction Master进程同时负责驱动Application和从Yarn中申请资源,该进程运行在Yarn container内,所以启动Application Master的client可以立即关闭而不必持续到Application的生命周期。这个client节点是在Yarn集群内的节点。
yarn-cluster模式下作业执行流程:
1、客户端生成作业信息提交给ResourceManager(RM)。
2、RM在某一个NodeManager(NM)启动container,并将Application Master(AM)分配给该NM。
3、NM接收到RM的分配并启动Application Master,这时这个NM就是Driver。
4、Application向RM申请资源,分配资源并通知其他NM启动相应的Executor。
5、Executor向AM注册并汇报作业进度,启动task任务。
四、yarn-client与yarn-cluster的差别
1、yarn-client模式中,Driver是存在client节点,而yarn-cluster是存在NM节点。
2、yarn-client模式中,client提交了作业,由于driver端存在client,要与各个container交互,所以是不能关闭这个提交进程的。而yarn-cluster中,driver存在于NM,提交了代码后,与这个提交进程就没有关系了,可以关闭。
3、yarn-client模式中,是可以通过控制台日志看到作业运行的状况的,而yarn-cluster在控制台是看不到的。如果需要查看日志,可以通过命令查看。
yarn logs -applicationId
1
4、yarn-client模式中,client有可能不在集群内,该机器会与yarn集群进行频繁的网络通信(driver与executor通信),有可能会有网络限制。如果client在集群内,则会在集群内走网络通信。而yarn-cluster模式只是在集群内走网络通信。
5、在使用的时候,yarn-client传入的参数为
--master yarn --deploy-mode client
1
其实就等同于
--master yarn
1
默认yarn提交方式为yarn-client。而yarn-cluster模式需要写全
--master yarn --deploy-mode cluster
看完上述内容,你们掌握Spark中yarn-client与yarn-cluster的区别是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!