Spark-Submit
Spark基于 Yarn 的提交任务,有两种模式,一种是 client,另一种是 cluster 。
在 standalone 模式下也有 client 和 cluster 两种方式,方式大同小异,在 yarn 下将 ResourceManager 改为 Master , NodeManager 改为 Worker ,就变成了 standalone 模型。
1. client模式
提交任务的命令是:
./spark-submit --master yarn --deploy-mode client --class x.jar
./spark-submit --master yarn-client --class x.jar

Yarn-client模式适用于测试,但由于Driver运行在本地,Driver会与yarn集群中的Executor进行大量的通信,会造成客户机网卡流量的大量增加。当通信数据过大时,有可能会造成Driver端内存不足,或者连接超时。
2. Cluster 模型
提交任务的命令是:
./spark-submit --master yarn --deploy-mode cluster --class x.jar
./spark-submit --master yarn-cluster --class x.jar

Yarn-Cluster主要用于生产环境中,因为Driver运行在Yarn集群中某一台nodeManager中,每次提交任务的Driver所在的机器都是随机的,不会产生某一台机器网卡流量激增的现象,缺点是任务提交后不能看到日志。只能通过yarn查看日志。
|