hbase lzo表扫描导致regionserver关闭

时间:2015-12-31 09:33:46

标签: hadoop hbase lzo

我有一个问题,一些信息如下:

节点:3个节点,但只有configurtion 2 regionserver
os:Centos6.3
Apache Hadoop2.7.1
Apache Hbase0.98.12

我的hadoop和hbase支持lzo压缩,同时支持snappy压缩成功,我有一个使用lzo压缩的hbase表,并且有其他hbase表使用snappy压缩,我将50个重新编码器数据插入此表,好的,插入是没问题,但是当我使用java api扫描这个表时,其中一个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)


我不知道为什么只在扫描hbase表中抛出异常,因为我执行MR作业读取lzo文件是正常的,谢谢你的回答!

2 个答案:

答案 0 :(得分:0)

您错过了内容最后一行的回复。你必须使用这样的条件来控制EOF:

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

答案 1 :(得分:0)

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