EMR執行spark任務任務失敗重試的問題

2021-09-28 16:55:04 字數 337 閱讀 4060

在emr上跑spark任務,cluster+yarn。在補資料的時候,就是把主函式,根據日期通過for迴圈補充資料,一次性補充了2個月的資料。會不定時的出現重試的現象,例如我從8月份補充到10月份,程式跑到8月15號,進行16號的任務是開始重試,又從8.1號開始執行。

追蹤emr監控日誌,會出現類似am超出物理記憶體,被kill掉的日誌。當am被kill掉後,spark重試次數預設是2,所以會出現重試的情況。

通過日誌發現driver的記憶體大小是1.4g,所以調整了下driver的大小,在spark-submit提交任務是,新增設定driver的記憶體大小,--driver-memory 14g。調整後補充資料沒有出現重試的情況

Spark任務執行原理

首先,先看一幅圖 以上圖中有四個機器節點,driver 和 worker 是啟動在伺服器節點上的程序,這些程序都執行在 jvm 中。上述圖的執行步驟 driver 與集群節點之間有頻繁的通訊。driver 負責任務 tasks 的分發和結果的 任務的排程。如果 task的計算結果非常大就不要 了,會...

Spark任務執行過程解析

spark submit sparksubmit main submit dorunmain runmain 通過反射,建立我們編寫的主類的例項物件,呼叫main方法 開始執行我們的 初始化sparkcontext物件 建立初始rdd 出發action運算元 提交job worker執行任務 任務結...

spark任務執行及jar包

spark的jar包沒必要把所有相關的依賴都打進乙個jar包中,因為這樣會把spark hadoop本身相關的jar包也打進去,但是這些依賴在用spark submit命令執行時,會自動載入部署環境中已有的。opt cloudera parcels cdh bin spark submit clas...