我正在尝试如下运行两个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>
答案 0 :(得分:0)
根据给定的详细信息,您的作业必须基于Spark配置并行运行,但是很少需要考虑参数,
YARN是您的集群管理器吗?然后如果您在YARN中的配置中配置了该池。
我可以看到您正在使用FAIR调度程序,这意味着调度程序已被覆盖,然后在YARN中进行了配置?
要配置FAIR调度程序,请通过以下链接,所有内容均已详细给出, http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html