0
我在250GB或內存和40個內核的一臺機器上運行獨立羣集,並且有幾個TB或硬盤空間。SPARK獨立羣集:執行程序退出,如何跟蹤錯誤的來源?
我正在初始化一個由8個執行程序組成的集羣,每個執行程序有5個內核和28GB內存。
我在讀數據,我的持久性策略是MEMORY_AND_DISK。
我正在閱讀parquet文件,處理它們,並生成一個DataFrame,然後將它傳遞給管道以提取特徵並訓練一個隨機森林分類器。
在生成DataFrame時,我失去了執行者,但我無法找到原因。
我看到錯誤爲以下之一:
16/12/15 11:07:30 ERROR TaskSchedulerImpl: Lost executor 3 on XXXX: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
16/12/15 11:07:30 WARN TaskSetManager: Lost task 172.0 in stage 171.0 (TID 7757, XXXX): ExecutorLostFailure (executor 3 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
我已經看過關於星火UI執行人的標準錯誤日誌,但我不能發現任何東西(INFO日誌記錄級別啓用),只有INFO消息沒有任何警告或錯誤。
我監視執行程序上的可用內存(再次使用Spark UI),執行程序退出前還有可用內存,並且有足夠的磁盤空間可用。
- 如何跟蹤此問題?
- 執行人退出的原因是什麼?
您必須記錄您的應用程序並監視內存和網絡。您可以使用像jvisualvm這樣的工具爲您的獨立羣集。你也可以增加火花日誌級別。 – eliasah