【发布时间】:2016-11-21 20:37:33
【问题描述】:
我想知道为什么我的 spark 流作业中有这么多任务号?它变得越来越大......
运行3.2小时后,增长到120020……运行一天后,增长到100万……为什么?
【问题讨论】:
-
你的工作是做什么的?你能添加“流媒体”标签吗?
标签: apache-spark spark-streaming
我想知道为什么我的 spark 流作业中有这么多任务号?它变得越来越大......
运行3.2小时后,增长到120020……运行一天后,增长到100万……为什么?
【问题讨论】:
标签: apache-spark spark-streaming
我强烈建议您检查参数spark.streaming.blockInterval,这是一个非常重要的参数。默认为 0.5 秒,即每 0.5 秒创建一个任务。
所以也许您可以尝试将 spark.streaming.blockInterval 增加到 1 分钟或 10 分钟,然后任务数应该会减少。
我的直觉只是因为你的消费者和生产者一样快,所以随着时间的推移,越来越多的任务被积累起来供进一步消费。
这可能是由于您的 Spark 集群无法处理如此大的批次。也可能与检查点间隔时间有关,可能你设置的太大或太小。也可能与您的Parallelism、Partitions或Data Locality等设置有关。
祝你好运
阅读本文
.
.
【讨论】:
此SparkUI 功能意味着某些阶段依赖项可能已被计算或未计算,但由于它们的输出已经可用而被跳过。因此它们显示为skipped。
请不要使用might,这意味着在工作完成之前Spark 不确定是否需要返回并重新计算最初跳过的一些阶段。
【讨论】:
流式应用程序的本质是随着时间的推移为每批数据运行相同的进程。看起来您正在尝试以 1 秒的批处理间隔运行,并且每个间隔可能会产生多个作业。您在 3.2 小时内显示了 585 个工作,而不是 120020。但是,您的处理看起来也像是在 1 秒内完成。我想您的日程安排延迟非常高。我猜这是批处理间隔太小的症状。
【讨论】: