FAQ - RpcTimeoutException: Futures timed out after [120 seconds]

Futures timed out after [300 seconds]

问题描述/异常栈

Spark任务报错:org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [120 seconds].
或者
Futures timed out after [300 seconds]

解决方案

1、增加driver内存:spark.driver.memory=4g  
2、增大rpc等待超时时长:spark.rpc.askTimeout=240s
3、禁用广播
spark.sql.autoBroadcastJoinThreshold=-1 spark2
spark.sql.adaptive.autoBroadcastJoinThreshold=-1 (spark3)

问题原因

sparkdriver/am/executor之间rpc通过 spark.rpc.askTimeout设置超时,默认是120秒。
这边的直接原因是AMcluster模式中,就是driver来不及相应其他节点的rpc请求,导致超时。

作者:林帅