org.apache.hadoop.hbase.DoNotRetryIOException: Field is not a long, it's 19 bytes wide

问题:
使用java代码调用原子性递增方法时报如下错:

Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException): org.apache.hadoop.hbase.DoNotRetryIOException: Field is not a long, it's 19 bytes wide
    at org.apache.hadoop.hbase.regionserver.HRegion.getLongValue(HRegion.java:7707)
    at org.apache.hadoop.hbase.regionserver.HRegion.applyIncrementsToColumnFamily(HRegion.java:7661)
    at org.apache.hadoop.hbase.regionserver.HRegion.doIncrement(HRegion.java:7536)
    at org.apache.hadoop.hbase.regionserver.HRegion.increment(HRegion.java:7496)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.increment(RSRpcServices.java:554)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2249)
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33646)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2196)
    at org.apach

原因
代码如下:

Increment increment = new Increment(Bytes.toBytes("new_row_13"));
increment.addColumn(Bytes.toBytes("user_num"),Bytes.toBytes("in"), 2);
table.increment(increment);

因为之前在bash shell进行过put操作,value类型为非整型

put 'java_cli_table','new_row_13','user_num:in','0'

解决办法
由于还不知道怎么修改value类型,increment操作时,使用了新的修饰符

increment.addColumn(Bytes.toBytes("user_num"),Bytes.toBytes("inc"), 2);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值