Yarn-cluster及Yarn-client两种提交模式剖析
Yarn-cluster提交模式原理图
Yarn-client提交模式原理图
两种提交模式优缺点分析
- Yarn-client,用于本地测试,因为Driver运行在本地客户端,负责调度application,会与yarn集群产生超大量的网络通信,从而导致导致网卡流量激增,可能会被你们公司的SA(运维)警告。好处在于,直接执行时,本地可以看到所有的log,方便调试。
- Yarn-cluster,用于生产环境,因为Driver运行在NodeManager,没有网卡流量激增的问题。
缺点在于,调试不方便,本地spark-submit提交后,看不到log,只能通过yarn application-logs application_id这种命令来查看,很麻烦。
切换方式
- Spark内核架构,其实就是第一种模式,standalone模式,基于Spark自己的Master-Worker集群。
- 第二种,是基于YARN的yarn-cluster模式。
- 第三种,是基于YARN的yarn-client模式。
- 如果,你要切换到第二种和第三种模式,很简单,首先在/spark/conf/spark-env.sh中添加 export HADOOP_HOME=user/local/hadoop(hadoop的安装目录),然后将我们之前用于提交spark应用程序的spark-submit脚本,加上–master参数,设置为yarn-cluster,或yarn-client,即可。如果你没设置,那么,就是standalone模式。
总结
yarn-client 用的本地Driver
yarn-cluster 用其中一个NodeManager做Driver