Support Questions
Find answers, ask questions, and share your expertise
Announcements
Check out our newest addition to the community, the Cloudera Innovation Accelerator group hub.

Phoenix query call from java on larger data set fails with java.net.SocketTimeoutException: callTimeout=60000

New Contributor

I have a table with billions of records. When I run the following query "select count(*) from table" via sqlline it is working fine. But when I am trying count query from java class, I am getting timeout error. I am using phoenix JDBC thin driver to connect and run the query from a java class. For a small recordset, it is working fine. I have set the following configuration in connection properties and the same configuration are available on HBase.

phoenix.query.threadPoolSize = 500
phoenix.query.queueSize = 10000
hbase.client.scanner.timeout.period= 1800000
hbase.rpc.timeout = 1800000
phoenix.query.timeoutMs = 1800000
phoenix.query.keepAliveMs = 1800000
hbase.regionserver.lease.period =1800000
hbase.client.scanner.caching =1800000

java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=6, exceptions: Wed Oct 10 14:21:38 EDT 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60302: Call to host_name failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=156243, waitTime=60001, operationTimeout=60000 expired. row '13908?RB??D??%?=' on table 'Table_name' at region=Table_name,\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1528398264217.4677856e7ec417f1e1f2f50d71b31d9c., hostname=host,16020,1538041266262, seqNum=5357

1 ACCEPTED SOLUTION

"waitTime=60001, operationTimeout=60000 expired"

You need to include hbase-site.xml on the classpath for your application. It is obvious from the error that the hbase.rpc.timeout and phoenix.query.timeoutMs are not being respected from this error.

View solution in original post

1 REPLY 1

"waitTime=60001, operationTimeout=60000 expired"

You need to include hbase-site.xml on the classpath for your application. It is obvious from the error that the hbase.rpc.timeout and phoenix.query.timeoutMs are not being respected from this error.