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