hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask錯誤
起因
使用hive做join查詢,a表十幾萬數據,b表1kw多點數據,結果跑起來就是跑一半返回錯誤,提示如下:
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
嘗試
- 實在是沒什么解決辦法,然后咨詢了別人,說看看是不是有不合理數據,然后查了一下,去掉了一個空數據……然后重新跑,還是不行
- 谷歌之,看到這個網頁,意思是這並不是真的錯誤,需要去看日志。然后同事去看了日志,沒看到什么東西
- 再考慮是不是隊列的事情,結果換了個隊列,依然是同樣的錯誤
解決
這個時候我真的開始懷疑是不是數據過大了……雖然理論上倒是不應該,然后同事說要不你試一下換個引擎,然后把引擎換成了Tez,你媽嗨,22s跑出來了結果……擦
這讓我情何以堪?就換個引擎,你至於差別這么大么,Map-Reduce和Tez讓我感覺實在是太吃驚了
所以再遇到這個問題,確認數據沒問題,命令沒問題的同學,可以試試這個辦法。
感想
解決問題的思路,有時候卡住了可以換個思路,這條路堵住了,看看其他的辦法
