Support Questions

Find answers, ask questions, and share your expertise

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

avatar
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

avatar
Super Guru

"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

avatar
Super Guru

"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.