现象
在Trafodion中执行非常复杂的SQL语句时,有时候会报以下错误,
*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::nextRow returned error HBASE_ACCESS_ERROR(-706). Cause:
java.util.concurrent.ExecutionException: org.apache.hadoop.hbase.client.ScannerTimeoutException: 2744254ms passed since the last invocation, timeout is currently set to 60000
java.util.concurrent.FutureTask.report(FutureTask.java:122)
java.util.concurrent.FutureTask.get(FutureTask.java:188)
org.trafodion.sql.HTableClient.fetchRows(HTableClient.java:1251)
. [2017-05-04 13:52:13]
分析
这个错误跟HBase配置参数HBase Region Server租赁周期有关,默认值为10分钟,如下图
当执行很复杂的查询时,往往会出现超时错误,
关于hbase.client.scanner.timeout.period
Client scanner lease period in milliseconds. scanner两次操作之间的lease时长
Default: 60000(ms)
解决
修改HBase Region Server租赁周期配置参数,从默认的10分钟修改为更大一些的值,并重启HBase,可解决此问题