一、前述
本文總結了常用的Spark的troubleshooting。
二、具體
1、shuffle file cannot find:磁碟小檔案找不到。
1) connection timeout ----shuffle file cannot find
提高建立連線的超時時間,或者降低gc,降低gc了那麼spark不能堆外提供服務的時間就少了,那麼超時的可能就會降低。
2) fetch data fail ---- shuffle file cannot find
提高拉取資料的重試次數以及間隔時間。
3) OOM/executor lost ---- shuffle file cannot find
提高堆外記憶體大小,提高堆內記憶體大小。
2、reduce OOM
BlockManager拉取的資料量大,reduce task處理的資料量小
解決方法:
1) 降低每次拉取的資料量
2) 提高shuffle聚合的記憶體比例
3) 提高Executor的記憶體比例
3、序列化問題
自定義類時別忘實現序列化。
4、Null值問題
val rdd = rdd.map{x=>{
x+”~”;
}}
rdd.foreach{x=>{
System.out.println(x.getName())
}}