【问题标题】:Spark on YARN: execute driver without workerSpark on YARN:在没有工人的情况下执行驱动程序
【发布时间】:2017-08-27 09:43:11
【问题描述】:

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

  • 3 个带有 YARN 的数据节点
  • 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 个节点上运行良好。但我还可以看到其他 2 个仅使用驱动程序容器的工作!

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

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

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

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

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

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

    这样,YARN 不会为 Spark 驱动程序占用全部资源,而是为工作人员保留资源。有皮!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多