Spark Scheduler池作业未按预期并行运行

时间:2019-03-22 03:39:40

标签: apache-spark job-scheduling

我正在尝试如下运行两个spark操作,并且我希望它们并行运行,因为它们都使用不同的池。使用池进行调度是否意味着不同的独立操作将并行运行?我的意思是,如果我有200个核心,则pool1使用100个核心,pool2使用100个核心,然后处理操作。 在我的情况下,在pool1中完成第一个数据帧操作后,便启动了数据帧action2。

spark.setLocalProperty("spark.scheduler.pool","pool1")
dataframe.show(100,false)

spark.setLocalProperty("spark.scheduler.pool","pool2")
dataframe2.show(100,false)

我的池配置xml

<?xml version="1.0"?>

<allocations>
  <pool name="pool1">
    <schedulingMode>FAIR</schedulingMode>
    <weight>1</weight>
  </pool>
  <pool name="pool2">
    <schedulingMode>FAIR</schedulingMode>
    <weight>1</weight>
  </pool>
</allocations>

1 个答案:

答案 0 :(得分:0)

根据给定的详细信息,您的作业必须基于Spark配置并行运行,但是很少需要考虑参数,

  1. YARN是您的集群管理器吗?然后如果您在YARN中的配置中配置了该池。

  2. 我可以看到您正在使用FAIR调度程序,这意味着调度程序已被覆盖,然后在YARN中进行了配置?

要配置FAIR调度程序,请通过以下链接,所有内容均已详细给出, http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html