Spark流处理调优步骤
总体运行状况:
这里的每个批处理任务间隔是10s一次,所以Total Delay是14s,那么对于下一个批处理任务来说就是延迟了14 - 10 = 4s 。
Total Delay - 每个批处理任务设置的间隔 = Scheduling Delay
Scheduling Delay + Processing Time = Total Delay
简易调优策略:设置每个批处理任务间隔时间 >= Proceesing Time(实际执行时间)
每个Executor、Task的执行时间,可以用于优化数据倾斜等问题:
查看每个批处理任务执行的具体状况:
点击时间戳进入:
点击“Job Id”查看具体的Task执行状况:
Executor倾斜:
只有一个Executor执行了1.3min,其他都是毫秒级,而Spark的运算性能是以最慢那个作为最终的运算时间,这说明其他的Executor并没有做运算。
解决办法:对rdd做一次reparation即可。
- rdd = rdd.repartition(10);