Can you tell me how to set these client-side properties programmatically?
I'm using JDBI, which uses JDBC; I'm building the whole application into
an executable jar. It's not clear to me where I would put a
hbase-site.xml; but I suspect that it is easier in any case to set the
Phoenix properties and the underlying HBase config programmatically
rather than in an XML file.
James
On 16/09/15 02:44, James Taylor wrote:
The other important timeout is Phoenix
specific: phoenix.query.timeoutMs. Set this in your hbase-site.xml on
the client side to the value in milliseconds for the amount of time
you're willing to wait before the query finishes. I might be wrong,
but I believe the hbase.rpc.timeout config parameter needs to be set
in the hbase-site.xml on the server side (i.e. each region server).
On Tue, Sep 15, 2015 at 6:29 PM, Ravi Kiran <[email protected]
<mailto:[email protected]>> wrote:
Hi James,
You need to increase the value of hbase.rpc.timeout in
hbase-site.xml on your client end.
http://hbase.apache.org/book.html#trouble.client.lease.exception
Ravi
On Tue, Sep 15, 2015 at 12:56 PM, James Heather
<[email protected] <mailto:[email protected]>>
wrote:
I'm a bit lost as to what I need to change, and where I need
to change it, to bump up timeouts for this kind of error:
Caused by: org.apache.phoenix.exception.PhoenixIOException:
org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36,
exceptions:
Tue Sep 15 18:48:13 UTC 2015, null, java.net.SocketTimeoutException:
callTimeout=60000, callDuration=60304: row '�>' on table 'LOADTEST.TESTING' at
region=LOADTEST.TESTING,\x03\x00\x00\x00\x00\x00\x00\x00\x00,1442332822105.b6b3682074d6c65bd4efa3f1e2b58ffa.,
hostname=ip-172-31-31-177.ec2.chonp.net
<http://ip-172-31-31-177.ec2.chonp.net>,60020,1442309899160,
seqNum=2
at
org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
at
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:538)
at
org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
at
org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
at
org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
at
org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)
at
org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
at
org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
at
org.apache.phoenix.iterate.LimitingResultIterator.next(LimitingResultIterator.java:47)
at
org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:764)
at org.skife.jdbi.v2.Query$4.munge(Query.java:176)
at
org.skife.jdbi.v2.QueryResultSetMunger.munge(QueryResultSetMunger.java:42)
at
org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1340)
... 20 more
Caused by: java.util.concurrent.ExecutionException:
org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36,
exceptions:
Tue Sep 15 18:48:13 UTC 2015, null, java.net.SocketTimeoutException:
callTimeout=60000, callDuration=60304: row '�>' on table 'LOADTEST.TESTING' at
region=LOADTEST.TESTING,\x03\x00\x00\x00\x00\x00\x00\x00\x00,1442332822105.b6b3682074d6c65bd4efa3f1e2b58ffa.,
hostname=ip-172-31-31-177.ec2.chonp.net
<http://ip-172-31-31-177.ec2.chonp.net>,60020,1442309899160,
seqNum=2
at
java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:534)
... 31 more
Is this a client-side timeout, or do I need to change
something HBase-related on the server and restart the cluster?
On master, or all region servers?
If it's a client-side thing, where (in JDBC terms) do I do this?
I've tried various things, but I always hit this timeout, and
it always says the timeout is 60000 (ms, presumably).
James