Spark Streaming 的动态分配

7
我在我们的集群上运行了一个Spark Streaming作业,还有其他作业(Spark核心作业)。我想为这些作业使用动态资源分配,包括Spark Streaming。根据下面的JIRA问题,动态分配不支持Spark Streaming(在1.6.1版本中)。但在2.0.0中已经修复。 JIRA链接 根据此问题中的PDF,应该有一个名为spark.streaming.dynamicAllocation.enabled=true的配置字段。但我在文档中没有看到这个配置。
请问:
  1. 我不能在1.6.1版本中启用Spark Streaming的动态资源分配吗?
  2. 它是否在Spark 2.0.0中可用。如果是,应设置什么配置(spark.streaming.dynamicAllocation.enabled=truespark.dynamicAllocation.enabled=true)?
1个回答

9
可以在Spark Streaming 1.6.1版本中启用动态资源分配吗?是的,您可以通过设置spark.dynamicAllocation.enabled=true来为任何Spark应用程序启用动态分配。但是,我对流应用程序有一些问题(在SPARK-12133中提到)。因此,在Spark 2.0中为流应用程序单独添加了新属性(spark.streaming.dynamicAllocation.enabled)。如果应用程序是流式的,则必须使用spark.streaming.dynamicAllocation.enabled,否则请继续使用spark.dynamicAllocation.enabled
今天还没有记录,但我在Spark源代码中找到了这个属性和实现。 github: ExecutorAllocationManager.scala(单元测试github:ExecutorAllocationManagerSuite.scala)类已经包含在Spark 2.0中,而在Spark 1.6及以下版本中不存在此实现。

感谢Srinivas的回复。但是我在Spark文档中没有看到"spark.streaming.dynamicAllocation.enabled"。您能否指出您看到这个选项的链接? - Akhila Lankala
我正在独立模式下运行Spark集群,我的集群启动时会启动所有执行器,而我想要以最少的执行器启动它,该怎么做?你能帮忙解决这个问题吗?并且有什么参考资料可以供我参考吗? - Sanjay
同时,对于流式动态分配,不存在类似于“spark.dynamicAllocation.initialExecutors”的设置。 - Sanjay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接