在扫描仪和计算通话HBase的壳“OutOfOrderScannerNextException”错误

问题描述 投票:2回答:3

要么我运行扫描命令或计数,这个错误弹出,错误消息没有意义了我。它说什么和怎么解决呢?

org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException:预期nextCallSeq:1但nextCallSeq从客户端得到:0;请求= scanner_id:788个NUMBER_OF_ROWS:100 close_scanner:假next_call_seq:0

命令:

计数 '表',5000扫描 '表',{COLUMN => [ 'CF:CQ'],FILTER => “ValueFilter(= 'binaryprefix:someValue中')”}

编辑:

我已经添加在HBase的-site.xml中的以下设置

<property>
    <name>hbase.rpc.timeout</name>
    <value>1200000</value>
  </property>
  <property>
    <name>hbase.client.scanner.caching</name>
    <value>100</value>
 </property>

没有影响

EDIT2:增加睡眠

                Result[] results = scanner.next(100);

                for (int i = 0; i < results.length; i++) {
                    result = results[i];
                    try {
                        ...
                        count++;
                        ...
                        Thread.sleep(10); // ADDED SLEEP
                    } catch (Throwable exception) {
                        System.out.println(exception.getMessage());

                        System.out.println("sleeping");
                    }
                }

EDIT2后新的错误:

org.apache.hadoop.hbase.client.ScannerTimeoutException: 101761ms passed since the last invocation, timeout is currently set to 60000
...


Caused by: org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Name: 31, already closed?
    ...

Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.UnknownScannerException): org.apache.hadoop.hbase.UnknownScannerException: Name: 31, already closed?
    ...

FINALLY BLOCK: 9900
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 101766ms passed since the last invocation, timeout is currently set to 60000
    ...


Caused by: org.apache.hadoop.hbase.client.ScannerTimeoutException: 101766ms passed since the last invocation, timeout is currently set to 60000
    ...

Caused by: org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Name: 31, already closed?
    ...

Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.UnknownScannerException): org.apache.hadoop.hbase.UnknownScannerException: Name: 31, already closed?
    ...
hadoop hbase nosql
3个回答
3
投票

编辑:通过使用随下载的HBase的(未Maven的0.99)相同的客户端版本,我能解决这个问题。服务器版本0.98.6.1包含./lib文件夹内的客户端罐子

不要忘记附上饲养员库


旧:

现在,我做了两两件事,改变了表连接API(0.99)

                    Configuration conf = HBaseConfiguration.create();
                    TableName name = TableName.valueOf("TABLENAME"); 
                    Connection conn = ConnectionFactory.createConnection(conf);
                    Table table = conn.getTable(name);

然后,当错误弹出,我尝试重新连接

                    scanner.close();
                    conn.close();
                    conf.clear();
                    conf = HBaseConfiguration.create();
                    conn = ConnectionFactory.createConnection(conf);
                    table = conn.getTable(name);
                    table = ConnectionFactory.createConnection(conf).getTable(name);
                    scanner = table.getScanner(scan);

这工作,但它是在收到第一个错误后可能会放缓。很慢,通过所有的行扫描


3
投票

这有时会发生,当你做了巨大的删除,您需要合并空白区域,要平衡你的地区


1
投票

可以通过破盘以及造成的。在我来说,它不是那么坏,这样Ambari,HDFS或我们的监测服务注意到了这一点,但足以破坏,使得它不能成为一个区域。

使用磁盘停止RegionServer的后,扫描工作。

我发现RegionServer的运行在调试模式HBase的外壳:

hbase shell -d

然后一些regionservers出现在输出,其中一人站了出来。然后,我跑到dmesg主机上找到发生故障的磁盘。

© www.soinside.com 2019 - 2024. All rights reserved.