phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after atte...

在CentOS 6.5上,使用phoenix-4.10.0和hbase-1.2.6,尝试通过phoenix客户端为含有990万+条记录的表SYNC_BUSINESS_INFO_BYDAY创建二级索引时遇到SocketTimeoutException。问题根源在于客户端扫描超时。解决方案是增加'hbase.client.scanner.timeout.period'配置,确保HBASE_CONF_PATH环境变量指向包含此配置的hbase-site.xml。设置后成功创建索引,耗时397.567秒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境描述

  •   操作系统版本:CentOS release 6.5 (Final)
  •   内核版本:2.6.32-431.el6.x86_64
  •   phoenix版本:phoenix-4.10.0
  •   hbase版本:hbase-1.2.6
  •   表SYNC_BUSINESS_INFO_BYDAY数据库量:990+

问题描述:

通过phoenix客户端连接hbase数据库,创建二级索引时,报下面的错误

0: jdbc:phoenix:host-10-191-5-226> create index SYNC_BUSINESS_INFO_BYDAY_IDX_1 on SYNC_BUSINESS_INFO_BYDAY(day_id) include(id,channel_type,net_type,prov_id,area_id,city_code,channel_id,staff_id,trade_num,sync_file_name,sync_date);

Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions:

Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60101: row '20171231103826898918737449335226' on table 'SYNC_BUSINESS_INFO_BYDAY' at region=SYNC_BUSINESS_INFO_BYDAY,20171231103826898918737449335226,1516785469890.75008face58e29afbe41d239efc0e8eb., hostname=host-10-191-5-227,16020,1520250519822, seqNum=5005041 (state=08000,code=101)

org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions:

Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60101: row '20171231103826898918737449335226' on table 'SYNC_BUSINESS_INFO_BYDAY' at region=SYNC_BUSINESS_INFO_BYDAY,20171231103826898918737449335226,1516785469890.75008face58e29afbe41d239efc0e8eb., hostname=host-10-191-5-227,16020,1520250519822, seqNum=5005041

 

         at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:113)

         at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:852)

         at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:796)

         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.compile.UpsertCompiler$1.execute(UpsertCompiler.java:754)

         at org.apache.phoenix.compile.DelegateMutationPlan.execute(DelegateMutationPlan.java:31)

         at org.apache.phoenix.compile.PostIndexDDLCompiler$1.execute(PostIndexDDLCompiler.java:124)

         at org.apache.phoenix.query.ConnectionQueryServicesImpl.updateData(ConnectionQueryServicesImpl.java:3332)

         at org.apache.phoenix.schema.MetaDataClient.buildIndex(MetaDataClient.java:1302)

         at org.apache.phoenix.schema.MetaDataClient.createIndex(MetaDataClient.java:1584)

         at org.apache.phoenix.compile.CreateIndexCompiler$1.execute(CreateIndexCompiler.java:85)

         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:358)

         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:341)

         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)

         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:339)

         at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1511)

         at sqlline.Commands.execute(Commands.java:822)

         at sqlline.Commands.sql(Commands.java:732)

         at sqlline.SqlLine.dispatch(SqlLine.java:813)

         at sqlline.SqlLine.begin(SqlLine.java:686)

         at sqlline.SqlLine.start(SqlLine.java:398)

         at sqlline.SqlLine.main(SqlLine.java:291)

Caused by: java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions:

Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=60101: row '20171231103826898918737449335226' on table 'SYNC_BUSINESS_INFO_BYDAY' at region=SYNC_BUSINESS_INFO_BYDAY,20171231103826898918737449335226,1516785469890.75008face58e29afbe41d239efc0e8eb., hostname=host-10-191-5-227,16020,1520250519822, seqNum=5005041

 

         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:847)

         ... 24 more

Caused by: org.apache.phoenix.exception.PhoenixIOException: Failed after a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值