2014-10-18 19 views
2

要麼運行掃描命令或計數,會彈出此錯誤,並且錯誤消息對我沒有意義。 這是什麼說&如何解決它?HBase shell在掃描器和計數調用時出現「OutOfOrderScannerNextException」錯誤

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: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"); 
        } 
       } 

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? 
    ... 
+1

哪個版本的HBase你使用這個有時會出現掃描? – Chiron 2014-10-18 09:26:04

+0

@Chiron hbase-0.98.6.1-hadoop1獨立於Ubuntu – 2014-10-18 15:05:36

+0

我正在運行另一個掃描命令,問題依然存在,我應該使用緩存嗎? – 2014-10-18 15:32:19

回答

2

編輯:通過使用附帶的相同的客戶端版本下載的hbase(不maven 0.99),我能夠解決這個問題。 服務器版本爲0.98.6.1 包含./lib文件夾內的客戶端罐子

不要忘記附上飼養員庫


OLD:

現在,我做了兩兩件事,改變了表連接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); 

這可行,但在收到第一個錯誤後可能會變慢。很慢,通過所有的行

2

當你沒有巨大的刪除,您需要合併空白區域,要平衡你的地區