当前位置: 首页 > 知识库问答 >
问题:

phoenix和查询超时

方夜洛
2023-03-14

我有一个非常大的HBASE/Phoenix表,我试图使用SQLLINE查询它。我得到以下异常。我尝试在客户端和服务器上更改各种设置:

phoenix.query.keepAliveMs
phoenix.query.timeoutMs
dfs.client.socket-timeout

我试着将以上所有设置为6000000,但仍然得到同样的问题。有什么想法吗?原来的异常似乎是hbaseClient.calltimeoutException。

+------------------------------------------+
|                 COUNT(1)                 |
 +------------------------------------------+
java.lang.RuntimeException: org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions:
Tue Sep 22 09:22:40 BST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60302: row '' on table 'OUTPUT_TEST_TABLE' at region=OUTPUT_TEST_TABLE,,1442867748366.5e70471615adc084cd0a60f943a654b0., hostname=d2.lan,16020,1442909697689, seqNum=194461

at sqlline.IncrementalRows.hasNext(IncrementalRows.java:73)
at sqlline.TableOutputFormat.print(TableOutputFormat.java:33)
at sqlline.SqlLine.print(SqlLine.java:1653)
at sqlline.Commands.execute(Commands.java:833)
at sqlline.Commands.sql(Commands.java:732)
at sqlline.SqlLine.dispatch(SqlLine.java:808)
at sqlline.SqlLine.begin(SqlLine.java:681)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:292)

0: jdbc:phoenix:nn.lan> 15/09/22 09:22:44 WARN client.ScannerCallable: Ignore, probably already closed
java.io.IOException: Call to d2.lan/192.168.0.30:16020 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=100, waitTime=60001, operationTimeout=60000 expired.
at org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1232)
at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1200)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:32651)
at org.apache.hadoop.hbase.client.ScannerCallable.close(ScannerCallable.java:355)
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:195)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:142)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:61)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:258)
at org.apache.hadoop.hbase.client.ClientScanner.possiblyNextScanner(ClientScanner.java:241)
at org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:532)
at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:364)
at org.apache.phoenix.iterate.ScanningResultIterator.next(ScanningResultIterator.java:55)
at org.apache.phoenix.iterate.TableResultIterator.next(TableResultIterator.java:107)
at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:125)
at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:83)
at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:62)
at org.apache.phoenix.iterate.SpoolingResultIterator$SpoolingResultIteratorFactory.newIterator(SpoolingResultIterator.java:78)
at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:109)
at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:100)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:183)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=100, waitTime=60001, operationTimeout=60000 expired.
at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1174)
... 26 more

共有1个答案

苏边浩
2023-03-14

尝试更改HBase的配置。属性hbase.rpc.timeout。必须在客户端增加此属性。

<property>
    <name>hbase.rpc.timeout</name>
    <value>360000000</value>
</property>
 类似资料:
  • 我在用阿帕奇凤凰和HBase。但是即使是像count(*)这样的简单查询也需要大约2-3秒。 这是预期的响应时间还是我漏掉了什么。

  • 我们正在尝试使用Apache Phoenix驱动程序来提高HBase设置的读取性能,以对抗约1150万条记录的数据集。 HBase 0.98 Apache Phoenix driver 4.3.1 Squirrel Client 3.2 该表由21列组成,下面是DDL语句: 我们已经对表执行了salting(salt buckets=3),并在所有列上创建了一个辅助索引(不可变索引)。 我们执行以

  • 我们正在使用Apache Phoenix访问HBase数据存储。作为某些需求的一部分,我们需要记录从任何Phoenix客户端发出的每个更新操作,例如写和删除表命令。Phoenix的日志记录是否已经以可解析的格式捕获了这些命令?如果没有,我如何捕捉这些信息?

  • 问题内容: 我命中了要通过自定义开发层进行Solr的查询,而我在该层中超时的一些查询仍在solr实例中。solr中是否有一个可用于使特定查询超时的参数 问题答案: 如Solr中所述,客户端断开连接后查询继续吗?并写在Solr常见问题解答中 在内部,Solr不会使任何请求超时-它使更新和查询都需要花费很长时间才能完全处理。 但是在FAQ的同一位置 但是,用于运行Solr的servlet容器可能会对所

  • 问题内容: 我想将超时添加到pg- promise查询,以便如果数据库尚未响应,则在一段时间后它们将失败。有什么建议的方法吗?还是我应该做一个可以处理定时器并拒绝诺言的自定义包装器(如果为时已晚)? 问题答案: 来自pg-promise的作者… pg-promise不支持查询取消,因为它可以解决数据库设计错误或查询执行不正确的问题。 PostgreSQL支持在执行耗时的查询时应使用的事件,因此无需

  • 我正在使用Spring框架。使用NamedParameterJdbcTemplate时,如何设置查询超时?我注意到JdbcTemplate有一个setQueryTimeout(int queryTimeout)方法,但我还没有找到一种使用NamedParameterJdbcTemplate实现这一点的方法。它有一个getJdbcOperations()方法,但似乎没有公开setQueryTimeo