在執行腳本:
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