在用一個新的spark集羣 處理業務時,處理的任務量稍微大一點,涉及到較多的map和reduce的任務式就會報下列錯誤:
開始以爲是spark集羣的內存沒給夠,因爲在另一個更大集羣中和自己只有6g的單機上跑都沒有問題,但嘗試加大集羣運行內存和集羣worker和executor數量後仍然報同樣地錯誤。在技術羣裏問了一下,有人提示說是centos系統的系統參數沒有設置好,沿着這個線索對比了出問題的spark集羣的系統參數後:
有問題的集羣 能跑的集羣
發現有問題的max user processes (-u) 僅爲1024 ,在把max user processes更改到最大值時,重啓後原先的問題就消失了。
更改後(在更改的過程中順手也把open files 的數量也加到了最大)
折磨我多日的問題終於解決。