动态分配,使纱线上产生火花,不会缩减执行者的规模

时间:2018-12-25 08:06:21

标签: apache-spark spark-streaming apache-spark-2.2

我在纱线簇上使用火花流(火花版本2.2),并试图为我的应用程序启用动态纤芯分配。

执行器的数量按要求增加,但是一旦分配了执行器,即使流量减少,也不会按比例减小执行器,即一旦分配的执行器也不会释放。我还启用了纱线的外部混洗服务,如下所示: https://spark.apache.org/docs/latest/running-on-yarn.html#configuring-the-external-shuffle-service

我在spark-submit命令中设置的配置是:

            --conf spark.dynamicAllocation.enabled=false \
            --conf spark.streaming.dynamicAllocation.enabled=true \
            --conf spark.streaming.dynamicAllocation.scalingInterval=30 \
            --conf spark.shuffle.service.enabled=true \
            --conf spark.streaming.dynamicAllocation.initialExecutors=15 \
            --conf spark.streaming.dynamicAllocation.minExecutors=10 \
            --conf spark.streaming.dynamicAllocation.maxExecutors=30 \
            --conf spark.streaming.dynamicAllocation.executorIdleTimeout=60s \
            --conf spark.streaming.dynamicAllocation.cachedExecutorIdleTimeout=60s \

如果我缺少任何特定的配置,有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:0)

作为JIRA的一部分添加的文档对我有帮助:https://issues.apache.org/jira/browse/SPARK-12133

要注意的关键是,当比率(批处理时间/批处理持续时间)小于0.5(默认值)时,执行器的数量将按比例缩小,这实际上意味着执行器空闲了一半的时间。可用于更改此默认值的配置为“ spark.streaming.dynamicAllocation.scalingDownRatio”