Hive内存溢出常见问题

1 MR作业运行过程中内存溢出错误分类

1.1 Mapper/Reducer阶段JVM内存溢出(一般都是堆)

1.1.1 JVM堆(Heap)内存溢出:堆内存不足时,一般会抛出如下异常:

  • 1)-“java.lang.OutOfMemoryError: ” GC overhead limit exceeded;
  • 2)-"Error: Java heapspace" 异常信息
  • 3)-"running beyondphysical memory limits. Current usage: 2.1 GB of 2.0 GB physical memory used; 3 GB of  8.4 GB virtual memory used. Killing container"

1.1.2 栈内存溢出:抛出异常为 java.lang.StackOverflowError

 常会出现在SQL中(SQL语句中条件组合太多,被解析成为不断的递归调用),或MR代码中有递归调用。这种深度的递归调用在栈中方法调用链条太长导致的。出现这种错误一般说明程序写的有问题。

1.2 MRAppMaster内存不足

如果作业的输入的数据很大,导致产生了大量的Mapper和Reducer数量,致使MRAppMaster(当前作业的管理者)的压力很大,最终导致MRAppMaster内存不足,作业跑了一般出现了OOM信息。

异常信息为:

Exception: java.lang.OutOfMemoryError thrown from theUncaughtExceptionHandler in thread "Socket Reader #1 for port 30703

Halting due to Out Of Me

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值