【问题标题】:spark-submit on yarn - multiple jobsspark-submit on yarn - 多个工作
【发布时间】:2017-01-27 15:04:47
【问题描述】:

我想使用 yarn 提交多个 spark-submit 作业。当我跑步时

spark-submit --class myclass --master yarn --deploy-mode cluster blah blah

现在,我必须等待作业完成才能提交更多作业。我看到了心跳:

16/09/19 16:12:41 INFO yarn.Client: Application report for application_1474313490816_0015 (state: RUNNING) 16/09/19 16:12:42 INFO yarn.Client: Application report for application_1474313490816_0015 (state: RUNNING)

我如何告诉 yarn 从同一个终端接另一份工作。最终,我希望能够从一个脚本运行,我可以一次发送数百个作业。

谢谢。

【问题讨论】:

  • 你应该可以轻松运行它。您是否尝试在后台运行此作业,即使用 '&'

标签: hadoop apache-spark hadoop-yarn


【解决方案1】:

每个用户都有一个在 yarn 配置中指定的固定容量。如果你被分配了 N 个执行器(通常,你会被分配一些固定数量的vcores),并且你想运行 100 个作业,你需要指定每个作业的分配:

spark-submit --num-executors N/100 --executor-cores 5

否则,作业将循环接受。

您可以在每次调用的最后一次使用& 并行启动多个作业。

for i inseq 20; do spark-submit --master yarn --num-executors N/100 --executor-cores 5 blah blah &; done

【讨论】:

  • 谢谢@axiom 是的,我知道了。问题是我一次只能提交一个。示例:for i in `seq 20` ; do spark-submit --master yarn blah blah ; done 一次只提交一个,而不是 20 个,因为它正在等待来自 spark-submit 的终止信号。
【解决方案2】:
  • 在 spark 中检查 动态分配
  • 检查 Yarn 正在使用什么调度程序,如果 FIFO 将其更改为 FAIR
  • 您打算如何为 yarn 上的 N 个作业分配资源?

【讨论】:

  • 动态分配会很有帮助,因为您将同时运行多个作业,并且应用程序需要根据集群负载重新调整其大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 2016-01-18
  • 2015-09-25
  • 2016-11-15
  • 2019-07-25
  • 2017-10-31
相关资源
最近更新 更多