Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit
問題背景:
1、在Kylin里跑一個較大的cube,其中這個cube是一個大表事實表,關(guān)聯(lián)兩張維度表,在第三步: Extract Fact Table Distinct 報錯,查看Mapreduce的執(zhí)行過程,發(fā)現(xiàn)其中有4個Reduce執(zhí)行失敗,失敗的報錯是內(nèi)存溢出,多次調(diào)大reduce的內(nèi)存以后 ,Kylin閃退。
2、多次啟動kylin以后,查看kylin.out 報 Dumping heap to java_pidxxx.hprof….
“java.lang.outofMemoryError:Requested array size exceeds VM limit”
查看 kylin.log ,報仍然啟動引起內(nèi)存溢出的cube
原因分析:
cube在關(guān)聯(lián)字典表時,本身事實表數(shù)據(jù)量比較大,關(guān)聯(lián)的字典表也比較大,造成內(nèi)存溢出,Kylin閃退后重啟仍然去跑這個cube。
解決方法:
1、刪除這個cube,或者把cube的狀態(tài)改為disable,由于Kylin無法啟動,通過api調(diào)用不成功,可能通過Kylin管理手冊的方式,清除cube數(shù)據(jù),清除垃圾數(shù)據(jù)
2、由于確認(rèn)事實表hive 表是測試表,我采用了最粗暴的方式,刪除了這張hive表,問題解決。
總結(jié)
以上是生活随笔為你收集整理的Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第六届省赛(软件类)真题----Java
- 下一篇: 用EnumProcesses()枚举进程