Spark中yarn-client与yarn-cluster的区别是什么

发布时间:2021-08-05 16:21:00 作者:Leah
来源:亿速云 阅读:918

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 <app ID>
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的区别是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. Hadoop与spark是什么
  2. hadoop和spark的区别是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark yarn-client yarn-cluster

上一篇:Kubernetes和Docker的关系是什么

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》