转至元数据起始
数据倾斜指的是某个节点的数据太大,数据跑不完。而任务倾斜则是节点出问题,任务跑的慢。正好和目前出现的executor&task lost相呼应。
task倾斜原因比较多,网络io,cpu,mem都有可能造成这个节点上的任务执行缓慢,可以去看该节点的性能监控来分析原因。开启spark的推测机制后如果某一台机器的几个task特别慢,推测机制会将任务分配到其他机器执行,最后Spark会选取最快的作为最终结果。
- spark.speculation true
- spark.speculation.interval 100 - 检测周期,单位毫秒;
- spark.speculation.quantile 0.75 - 完成task的百分比时启动推测
- spark.speculation.multiplier 1.5 - 比其他的慢多少倍时启动推测。