无法从phoenix表读取大数据

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (97)

在大表上运行phoenix计数查询时,我得到的全部错误信息都在下面。

0: jdbc:phoenix:hadoopm1:2181> select Count(*) from PJM_DATASET;
+------------+
|  COUNT(1)  |
+------------+

java.lang.RuntimeException: org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions:
Fri Jan 09 02:18:10 CST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=62365: row '' on table 'PJM_DATASET' at region=PJM_DATASET,,1420633295836.4394a3aa2721f87f3e6216d20ebeec44., hostname=hadoopctrl,60020,1420790733247, seqNum=27753

    at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2440)
    at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2074)
    at sqlline.SqlLine.print(SqlLine.java:1735)
    at sqlline.SqlLine$Commands.execute(SqlLine.java:3683)
    at sqlline.SqlLine$Commands.sql(SqlLine.java:3584)
    at sqlline.SqlLine.dispatch(SqlLine.java:821)
    at sqlline.SqlLine.begin(SqlLine.java:699)
    at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441)
    at sqlline.SqlLine.main(SqlLine.java:424)
0: jdbc:phoenix:hadoopm1:2181>

请帮帮忙。

提问于
用户回答回答于

调用Timeout=60000,CallDuration=62365。

看来你的调用持续时间超过10分钟,即超时时间。尝试将HBASE-default.xml-(或您的自定义)配置文件中的“hbase.master.Cat.timeout”设置为更高的值。

用户回答回答于

在HBASE服务器和客户端配置中,需要将下面的HBASE配置属性增加到更高的值,默认值为1分钟(60000 MilliSEC)

  <property>
    <name>hbase.rpc.timeout</name>
    <value>600000</value>
  </property>

最重要的是,下面的命令应该返回正确的HBASE配置目录,其中HBASE-site.xml文件包含上述属性。如果HBASE的值_CONF_路径为空或.执行命令export HADOOP_CONF_DIR=<correct_hbase_dir>;用于在执行命令之前指向正确的HBASE配置。sqlline.py

phoenix_utils.py  | grep hbase_conf_path

所属标签

扫码关注云+社区

领取腾讯云代金券