在我們的數(shù)倉運行過程中,執(zhí)行調度98%概率會出出現(xiàn)的兩個報錯:
第一個:
Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
第二個:
Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Could not find status of job:job_1656914358436_*
這兩個問題的出現(xiàn)抄囚。網(wǎng)上說jobname的名字長度問題,我們采取網(wǎng)上的方法有:
hive.jobname.length=10? (#從10試到100都不行)
mapred.job.name=jobname
該辦法無效辅辩!
此下是我們的解決思路:
我們找到一個報錯的job_id 拿到y(tǒng)arn中查找日志,
application_1656914358436_5014? ?pstagejobnameMAPREDUCEhive0Mon Jul 4 16:30:23 +0800 2022Mon Jul 4 16:30:24 +0800 2022Mon Jul 4 16:30:47 +0800 2022FINISHEDSUCCEEDEDN/AN/AN/AN/AN/A0.00.0 History?0
在application_1656914358436_5014?中找logs
application_1656914358436_5014_000001? Mon Jul 4? ?16:30:23 +0800 2022? ??http://hadoop3:8042 ? ?LOGS??0
點LOGS?進去:
我們找到了以下報錯信息:
The directory item limit of /user/history/done_intermediate/pku?is exceeded: limit=1048576 items=1048576
問題原因:
發(fā)現(xiàn)是pku用戶下的文件個數(shù)超出了1048576的限制,
于是乎:
我們執(zhí)行解決辦法:
hdfs dfs -rm -r???/user/history/done_intermediate/pku/*
刪了一些后馬上就能執(zhí)行成功玫锋。