HIVE-執行distribute by時報錯的解決過程---之如何分析hive執行的錯誤並解決


在執行一條HIVE語句的時候報了以下錯誤,重新檢查了所有步驟,重啟所有服務,發現沒有問題。 但發現一個有趣的事情

1,select sno,sname,sex,sage,sdept from student可以正常執行

2,sno,sname,sex,sage,sdept from student distribute by(sname) 不可以執行報錯

在/tmp/用戶名下查看系統hive.log,發現信息並不多。網上有其他方法可以查看更多日志,但太麻煩,速度很慢所以就沒嘗試。

select sno,sname,sex,sage,sdept from student distribute by(sname) 
    > ;
Query ID = root_20171108131253_43a3d026-0e04-44f2-8312-c92d1c0b6125
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Defaulting to jobconf value of: 2
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapreduce.job.reduces=<number>
Starting Job = job_1510116443491_0001, Tracking URL = http://server71:8088/proxy/application_1510116443491_0001/
Kill Command = /usr/local/hadoop/bin/hadoop job  -kill job_1510116443491_0001
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0
2017-11-08 13:13:34,560 Stage-1 map = 0%,  reduce = 0%
Ended Job = job_1510116443491_0001 with errors
Error during job, obtaining debugging information...
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched: 
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 FAIL

 原因分析

上面1,2的區別表明了一件事情,單純的select語句是不通過mapreduce的,加上distribute by后調用了yarn程序。打開8088端口的yarn端口

可怕的是沒有錯誤信息,非常高興看到了下面錯誤,表明了兩件事。

1,剛才的sql用到了yarn,2,在使用yarn的時候無法啟動container報錯。這里需要了解yarn的基本知識。

解決方法:百度后得知這個是因為namenode和datanode時間不一致導致。簡單說就是幾台虛擬機的時間不一致。

用date查看四台機器,果然不一致。可能是因為某台曾經還原過快照,所以時間不一致。

org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container.

解決過程

雖然知道了原因,但還不是很順利,這也是很多人遇到的問題,我們的問題和其他人雖然是一個問題。但因為環境不同的原因,同樣的方法並不好用。

首先,我嘗試了ntpdate pool.ntp.org,但這個命令無效,報了name server問題,后來明白我電腦不聯網,而剛才命令是同步網絡時間的。所以我需要找到直接修改時間的方法

最后成功修改我的機器的時間的命令是下面的

date -s 15:55:33 (15點55分33秒) 時間可以自己修改

 

修改時間的其他方法,大家可以都嘗試一下,問題關鍵在於修改了機器時間,把問題簡化就是解決問題的基本步驟。

http://www.xitongzhijia.net/xtjc/20150219/38844.html

 

以上,希望對大家找到解決問題的思路有所幫助,問題有時候會讓我們崩潰和絕望。但總是有解決辦法的,比如終極方法:重裝系統


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM