如何解决 JOB 运行效率低的问题。
如果遇到某些JOB运行时间较长,有哪些情况造成?有什么相对应的处理办法?
-
原因:
- 数据倾斜导致效率低
- suffle 小文件太多或者分片数量过大
- map太多,reduce不够
- 单条记录开销大,导致spark变慢
- spark的吞吐量,单一节点的吞吐量
- 每一个步骤的RDD操作的空任务和小任务
- spark的序列化的时间较长
- suffle本身的io时间偏长
-
解决方案:
- 如果有相同的RDD,使用一个RDD
- 做suffle的时候可以做一个顶聚合
- 优化序列化的问题
- 写程序的时候减少拆箱和装箱的过程
- 做资源调度,修改spark的yarn
- 大规模的改suffle 的过程,在execute 里改
- 调整数据倾斜,尽量少用这种比较倾斜的分片来做
浙公网安备 33010602011771号