使用版本CDH5.4.5,HBase1.0.0
刚来新公司不久就出现RegionServer宕机事件,报的异常如下:
2017-05-12 21:15:26,396 FATAL [B.defaultRpcServer.handler=123,queue=6,port=60020] regionserver.RSRpcServices: Run out of memory; RSRpcServices will abort itself immediately
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:331)
at org.apache.hadoop.hbase.io.ByteBufferOutputStream.checkSizeAndGrow(ByteBufferOutputStream.java:77)
at org.apache.hadoop.hbase.io.ByteBufferOutputStream.write(ByteBufferOutputStream.java:116)
at org.apache.hadoop.hbase.KeyValue.oswrite(KeyValue.java:2532)
at org.apache.hadoop.hbase.KeyValueUtil.oswrite(KeyValueUtil.java:548)
at org.apache.hadoop.hbase.codec.KeyValueCodec$KeyValueEncoder.write(KeyValueCodec.java:58)
at org.apache.hadoop.hbase.ipc.IPCUtil.buildCellBlock(IPCUtil.java:122)
at org.apache.hadoop.hbase.ipc.RpcServer$Call.setRespo

在CDH5.4.5和HBase1.0.0环境中遇到RegionServer宕机问题,错误显示'Requested array size exceeds VM limit'。这通常是由于OpenJDK中数组大小的限制导致的。解决方案包括应用HBase的补丁如HBASE-14598,它限制了数组长度并发送异常给客户端。进一步的调试发现,问题可能是由于一次性返回的数据量过大(responsesize)。此外,补丁HBASE-16033提供了更多日志信息,帮助定位问题。建议尽快进行相关补丁的升级。
最低0.47元/天 解锁文章
524





