2015-06-25 5 views
0

Я вижу странную ошибку, итерации по запросу ResultSet. Мой код в Java, и я делаю что-то вроде следующего:Phoenix Hbase: ResultSet.next() работает в StackOverflowError

String sql = " SELECT * FROM TABLE_NAME WHERE DATE_TIME > 'something' ORDER BY DATE_TIME DESC LIMIT 1" 
    ResultSet rs = preparedStatement.execute(sql); 

    while(rs.next()){ 
    //Code never enters this block 
    } 

При отладке я обнаружил, что, когда исполнение достигает rs.next(), она работает в какой-то ошибки и подбрасывает StackOverflowError. Я пытаюсь отладить больше, но если кто-нибудь знает или понимает, почему это происходит, пожалуйста, помогите. Спасибо заранее.

org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: THREAT_VIEW,,1431123584956.a0075602ce1d3ed11929c84e62686e45.: null 
    at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:84) 
    at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:52) 
    at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$2.nextRaw(BaseScannerRegionObserver.java:309) 
    at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:76) 
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2195) 
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:31443) 
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2035) 
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107) 
    at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130) 
    at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107) 
    at java.lang.Thread.run(Thread.java:745) 
    Caused by: java.lang.StackOverflowError 
    at org.apache.hadoop.hbase.util.Bytes$LexicographicalComparerHolder$UnsafeComparer.compareTo(Bytes.java:1295) 
    at org.apache.hadoop.hbase.util.Bytes.compareTo(Bytes.java:1223) 
    at org.apache.hadoop.hbase.CellComparator.compareRows(CellComparator.java:186) 
    at org.apache.hadoop.hbase.CellComparator.compare(CellComparator.java:63) 
    at org.apache.hadoop.hbase.KeyValue$KVComparator.compare(KeyValue.java:1968) 
    at org.apache.hadoop.hbase.KeyValue$KVComparator.compare(KeyValue.java:1897) 
    at org.apache.hadoop.hbase.util.Bytes.binarySearch(Bytes.java:1901) 
    at org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.rootBlockContainingKey(HFileBlockIndex.java:426) 
    at org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:215) 
    at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:625) 
    at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:573) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:247) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:434) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
    at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekToPreviousRow(StoreFileScanner.java:449) 
+0

hi reoger вы находите решение этой ошибки, потому что я тоже такая же ошибка –

+0

@TanmayAgrawal опубликовала решение – Roger

ответ

0

Похоже, что используемая версия Hbase не поддерживает REVERSE Ordering ON pk.

так ORDER BY START_TIME -> будет работать. Но ORDER BY START_TIME DESC -> не работает