在Yarn上运行Spark,群集模式。
3个数据节点
Yarn=>32 vCore,32 gb ram
我提交的spark程序如下:
spark-submit \
--class com.blablacar.insights.etl.SparkETL \
--name ${JOB_NAME} \
--master yarn \
--num-executors 1 \
--deploy-mode cluster \
--driver-memory 512m \
--driver-cores 1 \
--executor-memory 2g \
--executor-cores 20 \
toto.jar json
我可以看到2个作业在2个节点上运行良好。但我也可以看到另外两个工作,只有一个驱动程序容器!
如果没有工人的资源,是否可以不运行驱动程序?
1条答案
按热度按时间k5ifujac1#
实际上,有一个设置将资源限制为“应用程序主控”(对于spark,这是驱动程序):
从http://maprdocs.mapr.com/home/administratorguide/hadoop2.xcapacityscheduler-runningpendingapps.html:
群集中可用于运行应用程序主机的最大资源百分比—控制并发活动应用程序的数量。
这样,Yarn就不会把全部资源留给电Spark驱动,而把资源留给工人。尤皮!