关于火花作业工作量偏差,我有一个问题。
环境设置
集群有5个节点,1个主节点和5个工作人员(在10.200.0.94 ~ 10.200.0.98
下)。
每个节点具有40个内核(具有hyperthreading)和256g内存。
火花作业设置
工作是在数百万条记录中计算异常记录。
这是将近2到3个小时后运行作业后的作业历史记录。
我们可以看到,基本上有6个阶段,大部分时间处于第3、4和5阶段。
让我们进入第3阶段(第4阶段和第5阶段的结果相似)
很显然,某些任务比其他节点要花费更多的时间,例如,带有专用IP 10.200.0.96
的节点所附加的任务。
GC时间似乎合理。
然后让我们进入执行者视图:
节点96和98比其他节点花费更多的时间。
请注意,我没有使用任何repartition
动作。
有人可以对此提供一些提示吗?如何避免Spark作业中的这种计算偏差?有什么常规程序可以遵循吗?
答案 0 :(得分:0)
您是否创建了依赖于其中之一的管道,您是否还在使用检查点?