Using Hbase backend, got org.apache.hadoop.hbase.client.ScannerTimeoutException

265 views
Skip to first unread message

Christine Li

unread,
Oct 13, 2015, 4:31:46 PM10/13/15
to Aurelius
My graph has 295 vertices and 1000 edges. A long query works fine in gremlin console. Rewrite it in Java and got the following error:
java.lang.RuntimeException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 60780ms passed since the last invocation, timeout is currently set to 60000
    at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:650)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at com.thinkaurelius.titan.diskstorage.hbase.HBaseKeyColumnValueStore$RowIterator.hasNext(HBaseKeyColumnValueStore.java:277)
    at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph$2.hasNext(StandardTitanGraph.java:391)
    at com.thinkaurelius.titan.graphdb.transaction.VertexIterable$1.nextVertex(VertexIterable.java:34)
    at com.thinkaurelius.titan.graphdb.transaction.VertexIterable$1.next(VertexIterable.java:55)
    at com.thinkaurelius.titan.graphdb.transaction.VertexIterable$1.next(VertexIterable.java:27)


I I am using the same properties files for both cases:
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5


And hbase-site.xml has:

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


I don't quite understand why it works ok in groovy, but doesn't work in Java. And Should I reduce the scanner caching to resolve the problem?

Thanks,

anton...@gmail.com

unread,
Oct 14, 2015, 9:03:28 PM10/14/15
to Aurelius
The exception is saying that you have exceeded the timeout set namely 60780ms while the configured limit is 60000ms

can you check if these settings discussed here would help


Christine Li

unread,
Oct 22, 2015, 10:59:57 AM10/22/15
to Aurelius

I've got the problem resolved. Apparently, I need to modify the hbase setting from hbase library on my local machine. In my case, HBase is on a remote machine and used as the storage backend for Titan graph database.

I found that hbase-default.xml was built inside the hbase-common jar. When a query is executed from my application, the settings from the hbase-default.xml are used. Not what I thought that the settings are retrieved from the hbase server.


I suppose the setting on hbase server will work for queries executed from hbase shell.

Reply all
Reply to author
Forward
0 new messages