YARN上的Spark:执行没有worker

时间:2017-04-02 13:52:10

标签: hadoop apache-spark yarn

在YARN上运行Spark,群集模式。

  • YARN的3个数据节点
  • YARN => 32个vCores,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个作业正常运行。但我还可以看到另外两个只有一个驱动器容器的工作!

YARN web UI

如果没有工作人员的资源,是否可以不运行驱动程序?

1 个答案:

答案 0 :(得分:3)

实际上,有一个设置将资源限制为" Application Master" (如果是Spark,这是驱动程序):

yarn.scheduler.capacity.maximum-am-resource-percent

来自http://maprdocs.mapr.com/home/AdministratorGuide/Hadoop2.xCapacityScheduler-RunningPendingApps.html

  

群集中可用于运行的最大资源百分比   应用程序主机 - 控制并发活动的数量   应用

这样,YARN不会为Spark驱动程序获取全部资源,也不会为工作人员保留资源。 Youpi!