我正在使用spark streaming来从kafka读取数据。
为什么总任务数越来越大?经过几天的运行,恐怕会超过20亿......也许柜台会溢出?你的火花流工作也有这种现象吗?
答案 0 :(得分:0)
我的直觉仅仅是因为你的消费者和生产者一样快,所以随着时间的推移,越来越多的任务被积累以供进一步消费。
这可能是由于您的Spark群集无法处理如此大的批次。
它可能与检查点间隔时间有关,也许您将其设置得太大或太小。
它也可能与您并行,分区或数据位置等设置有关。
-----加上------
我还发现参数 spark.streaming.blockInterval 也非常重要。默认情况下为0.5秒,即每0.5秒创建一个任务。
所以也许你可以尝试将 spark.streaming.blockInterval 增加到5s或10s,看看是否有改进。祝你好运
阅读本文
答案 1 :(得分:0)
看起来每个kafka消息都作为单独的任务处理。这是火花流的本质。
我遇到了类似的问题。
阅读Kafka消息后重新分配RDD。
然后任何任务都无法控制。