为什么总任务数越来越大?

时间:2015-05-13 15:16:41

标签: apache-spark spark-streaming

enter image description here

我正在使用spark streaming来从kafka读取数据。

为什么总任务数越来越大?经过几天的运行,恐怕会超过20亿......也许柜台会溢出?你的火花流工作也有这种现象吗?

2 个答案:

答案 0 :(得分:0)

我的直觉仅仅是因为你的消费者和生产者一样快,所以随着时间的推移,越来越多的任务被积累以供进一步消费。

这可能是由于您的Spark群集无法处理如此大的批次。

它可能与检查点间隔时间有关,也许您将其设置得太大或太小。

它也可能与您并行分区数据位置等设置有关。

-----加上------

我还发现参数 spark.streaming.blockInterval 也非常重要。默认情况下为0.5秒,即每0.5秒创建一个任务。

所以也许你可以尝试将 spark.streaming.blockInterval 增加到5s或10s,看看是否有改进。祝你好运

阅读本文

  

Tuning Spark Streaming for Throughput

  

How-to: Tune Your Apache Spark Jobs (Part 1)

  

How-to: Tune Your Apache Spark Jobs (Part 2)

答案 1 :(得分:0)

看起来每个kafka消息都作为单独的任务处理。这是火花流的本质。

我遇到了类似的问题。

阅读Kafka消息后重新分配RDD。

然后任何任务都无法控制。