返回碼意義:
狀態碼 |
執行狀態說明 |
0 |
job成功執行 |
1 |
提交job失敗 或者 job運行時拋出異常時會返回的異常碼 |
2 |
提交job和運行job時沒有拋出異常,但是job運行時map階段或者reduce階段拋出RuntimeExeception時會拋出的異常,一般是各operator處理具體每一行數據時出現的Hive異常 |
3 |
動態分區,job close階段 1.第一種情況是涉及動態分區的job在close階段失敗會返回的異常碼,該階段主要工作是將數據移動至目標表或分區中時;
2.第二種情況是涉及到Join的job在close階段失敗時會返回的異常碼,該階段主要工作是移動數據到最終路徑下
|
5 |
加載Job時創建臨時文件夾失敗 |
HiveServer Kill job的情況
- Hive 發生主備切換時,新主主動kill掉原來的job;
- 在一個MR job中所有mappers及reducers創建HDFS文件數目超過文件最大數目時(該最大數目有HiveConf裏的hive.exec.max.created.files控制,目前默認值爲100,000);
- 當job提交失敗時,HiveServer會主動kill掉該job;
- 定期檢查job是否跑成功,即RunningJob的isSuccessful()判斷結果爲false時,觸發HiveServer主動去kill job。isSuccessful()只有在該Job的JobState在running狀態時,且cluster仍存在時,纔會更新JobStatus和去判斷該Job的運行結果。當該Job運行結果爲JobStatus.State爲非SUCCEEDED時,HiveServer纔會主動去Kill該Job