今天测试使用AggregationClient来统计最大最小年龄,结果返回空指针异常,然后我执行了一下rowCount聚合函数,是可以正确返回行数的,因此可以判断coprocessor设置是成功的。
经过一番折腾后发现,原来在hbase shell里put进去的年龄变成了字符串。。。。我是这么写的:put 'member2','row-1','info:age',20 。因为我突然发现我在shell控制台scan表时可以直接看到age的值!!!如果是数字类型的话,在shell控制台上显示的应该是16进制的字符串。
于是我改用API的形式put了一些测试数据数据进去,采用Bytes.toBytes(25L)的形式设置age的值。然后我重新scan了一下表,现在看到的是16进制值了。
然后我重新执行了一下聚合函数min,max,可以正常返回最大年龄和最小年龄了。。
记录一下避免再犯错。