Naresh
Naresh

Reputation: 5397

Timeout exception in Phoenix query over hbase data

I have a table(say T1) in hbase on which i ran select count(*) from T1 which contains over 60 million rows. But it gives the following the timeout exception error. Can't i change the timeout parameter of Phoenix?

com.salesforce.phoenix.exception.PhoenixIOException: com.salesforce.phoenix.exception.PhoenixIOException: 136520ms passed since the last invocation, timeout is currently set to 60000
    at com.salesforce.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:107)
    at com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:217)
    at com.salesforce.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:54)
    at com.salesforce.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:76)
    at com.salesforce.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:96)
    at com.salesforce.phoenix.iterate.GroupedAggregatingResultIterator.next(GroupedAggregatingResultIterator.java:78)
    at com.salesforce.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:49)
    at com.salesforce.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:741)
    at com.salesforce.phoenix.jdbc.PhoenixConnection.executeStatements(PhoenixConnection.java:113)
    at com.salesforce.phoenix.util.PhoenixRuntime.executeStatements(PhoenixRuntime.java:260)
    at com.salesforce.phoenix.util.PhoenixRuntime.main(PhoenixRuntime.java:207)
Caused by: java.util.concurrent.ExecutionException: com.salesforce.phoenix.exception.PhoenixIOException: 136520ms passed since the last invocation, timeout is currently set to 60000
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
    at java.util.concurrent.FutureTask.get(FutureTask.java:119)
    at com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:211)
    ... 9 more
Caused by: com.salesforce.phoenix.exception.PhoenixIOException: 136520ms passed since the last invocation, timeout is currently set to 60000
    at com.salesforce.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:107)
    at com.salesforce.phoenix.iterate.ScanningResultIterator.next(ScanningResultIterator.java:62)
    at com.salesforce.phoenix.iterate.TableResultIterator.next(TableResultIterator.java:86)
    at com.salesforce.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:110)
    at com.salesforce.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:75)
    at com.salesforce.phoenix.iterate.SpoolingResultIterator$SpoolingResultIteratorFactory.newIterator(SpoolingResultIterator.java:69)
    at com.salesforce.phoenix.iterate.ParallelIterators$2.call(ParallelIterators.java:184)
    at com.salesforce.phoenix.iterate.ParallelIterators$2.call(ParallelIterators.java:174)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
Caused by: org.apache.hadoop.hbase.client.ScannerTimeoutException: 136520ms passed since the last invocation, timeout is currently set to 60000
    at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:283)
    at com.salesforce.phoenix.iterate.ScanningResultIterator.next(ScanningResultIterator.java:57)
    ... 11 more
Caused by: org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Name: -3353955827223074008
    at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:2590)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:320)
    at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1426)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
    at org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
    at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:149)
    at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:42)
    at org.apache.hadoop.hbase.client.ServerCallable.withRetries(ServerCallable.java:163)
    at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:274)
    ... 12 more

Upvotes: 1

Views: 3701

Answers (2)

陈志明
陈志明

Reputation: 21

Try to change hbase.regionserver.lease.period and hbase.client.scanner.timeout.period on the hbase server site.

Upvotes: -1

G S Vijay Raajaa
G S Vijay Raajaa

Reputation: 71

Try modifying the phoenix.query.timeoutMs to a higher value in the hbase-site.xml. It defaults to 10min.

Refer: https://github.com/forcedotcom/phoenix/wiki/Tuning

Upvotes: 2

Related Questions