hbase lzo表扫描导致区域服务器关闭

e4eetjau  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(405)

我有个问题,一些信息如下:
节点:3个节点,但仅配置2个区域服务器
操作系统:centos6.3
apache hadoop2.7.1版
apache hbase0.98.12版
我的hadoop和hbase支持lzo压缩,同时支持snappy压缩成功,我有一个hbase表使用lzo压缩,还有一个hbase表使用snappy压缩,我在这个表中插入了50个recoder数据,好的,insert没有问题,但是当我用javaapi扫描这个表时,regionserver中的一个死机了。
我检查了hbase日志,但没有错误或异常,但我检查了hadoop日志,发现了一些异常:

java.io.IOException: Premature EOF from inputStream
    at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:201)
    at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
    at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
    at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
    at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:472)
    at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:849)
    at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:804)
    at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137)
    at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74)
    at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:251)

我不知道为什么在only scan hbase表中抛出异常,因为我执行mr job读取lzo文件是正常的,谢谢您的回答!

lp0sw83n

lp0sw83n1#

您缺少内容最后一行的报税表。您必须使用这样的条件来控制eof:

while (line = mycontent.readLine()) != null)
{
...
...
}
hyrbngr7

hyrbngr72#

好的,我终于找到了答案,这是难以置信的,通过hbase gc日志,我看到一个很长的完整gc建议,我的hbase的堆大小是默认的1gb,所以它可能发生了问题,当我增加到4gb堆,我使用大量的压缩是正常的,所以请记住lession!

相关问题