1.錯誤信息
org.apache.spark.SparkException: Job aborted due to stage failure:Serialized task 32:5 was 1728746673 bytes, which exceeds max allowed: spark.rpc.message.maxSize (134217728 bytes).
Consider increasing spark.rpc.message.maxSize or using broadcast variables for large values.
at org.apache.spark.scheduler.DAGScheduler……
2.錯誤原因
Spark節點間傳輸的數據過大,超過系統默認的128M,因此需要提高
spark.rpc.message.maxSize的大小或者選擇用broadcast廣播數據。
然而在某些情況下,廣播數據並不能契合我們的需求,這時我們可以在提交任務時對
spark.rpc.message.maxSize進行配置,調高maxSize即可。
3.具體解決方案
./bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf spark.rpc.message.maxSize=256
... # other options
<application-jar> \
[application-arguments]
紅色區域即可根據需求更改spark.rpc.message.maxSize的大小,舉例改為256M,實測有效。