0
我想用不同的Fair Scheduler pools执行不同的Spark Streaming作业。我正在玩Spark GitHub存储库中的NetworkWordCount
示例。我将其修改为运行3个池,其权重分别为1,5,10。如何使用Spark Streaming配置Fair Scheduler池?
我知道使用Spark Streaming需要使用workaround将作业分配给特定池,因此我以这种方式修改了代码:
wordCounts.foreachRDD(rdd =>
rdd.sparkContext.setLocalProperty("spark.scheduler.pool", poolName)
)
wordCounts.foreachRDD(rdd =>
println(rdd.sparkContext.getLocalProperty("spark.scheduler.pool"))
)
wordCounts.print()
从第二foreachRDD
打印我可以看到,所有的池工作,但他们不尊重分配给它们的优先级。每个池都有自己的数据源,并且它们全部以相同的字数/秒运行。由于工作量相同,我认为问题在其他地方,但我无法看到它在哪里。