phoenix查询奇怪的异常

本文记录了一次使用 Phoenix 在 HBase 上进行 SQL 查询时遇到的异常情况及解决过程。异常主要出现在特定 LIKE 子句的查询上,并最终发现是由一个节点未正确安装 Phoenix 所致。

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

selectSIWEB.DNSDELAY from CPSPHOENIXTESTDEMO where provcity='8320800' andDNSDELAY='-1';[this is OK]



selectSIWEB.DNSDELAY from CPSPHOENIXTESTDEMO where provcity like '8320%' and DNSDELAY='-1';[this is OK]



selectSIWEB.DNSDELAY from CPSPHOENIXTESTDEMO where provcity like '832%' and DNSDELAY='-1';[this is NOT OK]

select SIWEB.DNSDELAY from  CPSPHOENIXTESTDEMO where provcity like '832%'  and DNSDELAY='-1';
+------------------------------------------+
|                 DNSDELAY                 |
+------------------------------------------+
java.lang.RuntimeException: org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: CPSPHOENIXTESTDEMO,833\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00,1458617154789.5faacd92e6ea3430fd92d73423408632.: null
    at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:84)
    at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:52)
    at org.apache.phoenix.coprocessor.BaseScannerRegionObserver.postScannerOpen(BaseScannerRegionObserver.java:204)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$52.call(RegionCoprocessorHost.java:1318)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionOperation.call(RegionCoprocessorHost.java:1673)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperation(RegionCoprocessorHost.java:1748)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperationWithResult(RegionCoprocessorHost.java:1712)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.postScannerOpen(RegionCoprocessorHost.java:1313)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2259)
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32205)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2114)
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:101)
    at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:76)
    at com.google.common.collect.Lists.computeArrayListCapacity(Lists.java:105)
    at com.google.common.collect.Lists.newArrayListWithExpectedSize(Lists.java:195)
    at org.apache.phoenix.schema.ValueSchema.readFields(ValueSchema.java:369)
    at org.apache.phoenix.execute.TupleProjector.deserializeProjectorFromScan(TupleProjector.java:136)
    at org.apache.phoenix.coprocessor.ScanRegionObserver.doPostScannerOpen(ScanRegionObserver.java:204)
    at org.apache.phoenix.coprocessor.BaseScannerRegionObserver.postScannerOpen(BaseScannerRegionObserver.java:177)
    ... 12 more

    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)


原来是一个节点没有安装好phoenix造成的

[root@datanode1hbase]# scp ./lib/* root@namenode:/usr/hdp/2.3.4.0-3485/hbase/lib/

然后重起namenode上的服务,ok!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值