spark推测执行:
当成功的Task数超过总Task数的75%(可通过参数spark.speculation.quantile设置)时,再统计所有成功的Tasks的运行时间,得到一个中位数,用这个中位数乘以1.5(可通过参数spark.speculation.multiplier控制)得到运行时间门限,如果在运行的Tasks的运行时间超过这个门限,则对它启用推测。简单来说就是对那些拖慢整体进度的Tasks启用推测,以加速整个Stage的运行。
设置 spark.speculation=true即可
额外设置
1. spark.speculation.interval 100:检测周期,单位毫秒;
2. spark.speculation.quantile 0.75:完成task的百分比时启动推测;
3. spark.speculation.multiplier 1.5:比其他的慢多少倍时启动推测。
spark application blacklist:
spark.blacklist.application.fetchFailure.enabled=true (default:false)
//如果设置为“true”,Spark会在发生提取失败时立即将executor列入黑名单。 如果启用了external shuffle service,则整个节点将被列入黑名单。
spark.shuffle.service.enabled=true