hive return code 2的問題


在執行腳本:

create table liuchengtmp1_%CHINDAASDATE% as
select a.markcode, a.xiangmu, 
case when instrfun(xiangmu,'已注冊(') >0 THEN '已注冊'
when instrfun(xiangmu,'初步審定(') >0 THEN '初步審定'
ELSE XIANGMU
END XIANGMU_new
from f_tm_process_hdfs_ext_%CHINDAASDATE% a 
join (
select max(fliuc_id) fliucid1 from f_tm_process_hdfs_ext_%CHINDAASDATE% a join
(select a.markcode,max(a.liuchengdate) maxliuchendate,max(a.fliuc_idt) maxfliucidt 
from f_tm_process_hdfs_ext_%CHINDAASDATE% a join 
(select
markcode,
max(liuchengdate) maxliuchendate
from f_tm_process_hdfs_ext_%CHINDAASDATE% group by markcode) b
on a.markcode = b.markcode and a.liuchengdate = b.maxliuchendate
group by a.markcode) c
on a.markcode = c.markcode and a.liuchengdate = c.maxliuchendate and a.fliuc_idt = c.maxfliucidt
group by a.markcode; ) e on (a.fliuc_id = e.fliucid1);

腳本分拆成12個mr任務,在執行到第5個mr任務的時候報錯如下:

 

網上找了好多資料,有的說這不是個錯,有的說是內存不夠造成,看上面報錯截圖,內存使用一直在增加,

因此估計是內存不夠了,

 

后來處理措施為,將上述語句拆分成2步來執行,中間有一次數據落地,這樣防止將所有數據都放在內存中執行,如下:

drop table if exists liuchengtmp_%CHINDAASDATE%; 
create table liuchengtmp_%CHINDAASDATE% as
select max(fliuc_id) fliucid1 from f_tm_process_hdfs_ext_%CHINDAASDATE% a join
(select a.markcode,max(a.liuchengdate) maxliuchendate,max(a.fliuc_idt) maxfliucidt 
from f_tm_process_hdfs_ext_%CHINDAASDATE% a join 
(select
markcode,
max(liuchengdate) maxliuchendate
from f_tm_process_hdfs_ext_%CHINDAASDATE% group by markcode) b
on a.markcode = b.markcode and a.liuchengdate = b.maxliuchendate
group by a.markcode) c
on a.markcode = c.markcode and a.liuchengdate = c.maxliuchendate and a.fliuc_idt = c.maxfliucidt
group by a.markcode; 



drop table if exists liuchengtmp1_%CHINDAASDATE%;	
create table liuchengtmp1_%CHINDAASDATE% as
select a.markcode, a.xiangmu, 
case when instrfun(xiangmu,'已注冊(') >0 THEN '已注冊'
when instrfun(xiangmu,'初步審定(') >0 THEN '初步審定'
ELSE XIANGMU
END XIANGMU_new
from f_tm_process_hdfs_ext_%CHINDAASDATE% a 
join liuchengtmp_%CHINDAASDATE% b 
on (a.fliuc_id = b.fliucid1);
 

修改后,執行,不在報錯

 

下面是參考鏈接,值得看看老外們的說法:

http://stackoverflow.com/questions/11185528/what-is-hive-return-code-2-from-org-apache-hadoop-hive-ql-exec-mapredtask/11248618


免責聲明!

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



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