【问题标题】:How spark creates stages and divides them into small tasks for spark data stream?spark如何创建stage并将它们划分为spark数据流的小任务?
【发布时间】:2018-10-14 12:57:20
【问题描述】:
当我在 spark 中为来自 kafka 的传入数据创建数据流时,我收到以下警告 -
WARN TaskSetManager: Stage 1 包含一个非常大的任务 (1057 KB)。建议的最大任务大小为 100 KB。
所以我认为我需要增加任务大小,那么我们可以通过增加 RDD 的分区数来解决这个问题吗?以及一个stage是如何划分成小任务的,我们如何配置这些任务的大小?
提前致谢。
【问题讨论】:
标签:
apache-spark
spark-dataframe
spark-streaming
【解决方案1】:
那么我们可以通过增加 RDD 的分区数来解决这个问题吗?
一点也不。任务大小是发送给执行者的数据量。这包括函数定义和序列化闭包。在这里修改拆分对您没有帮助。
一般来说,这个警告并不重要,我不会太担心,但它暗示你应该再看看你的代码:
- 您是否使用动作/转换引用大对象?如果是,请考虑使用广播变量。
- 您确定只发送您希望发送的内容,而不是封闭范围(如大型对象)。如果问题出在此处,请处理您的代码结构。