validateArgAndGetPB 处的 Hbase countRow Nullpointer 异常

Posted

技术标签:

【中文标题】validateArgAndGetPB 处的 Hbase countRow Nullpointer 异常【英文标题】:Hbase countRow Nullpointer exception at validateArgAndGetPB 【发布时间】:2018-07-20 07:32:58 【问题描述】:

您好,我正在使用 Hbase。 我想计算我的表的行数,所以我使用了 AggregationClient.rowCount()

        Configuration conf = HBaseConfiguration.create();
    AggregationClient aggregationClient = new AggregationClient(conf);
    HTable htable=new HTable(conf,Bytes.toBytes("comment"));
    Scan scan =  new  Scan();
    scan.addFamily(Bytes.toBytes("user"));
    try
        long  rowCount = aggregationClient.rowCount( htable ,  null , scan);
        System.out.println("Row Count : "+rowCount);

    catch(Throwable e) 
        e.printStackTrace();
    

然而我遇到了空点异常

java.lang.NullPointerException 在 org.apache.hadoop.hbase.client.coprocessor.AggregationClient.validateArgAndGetPB(AggregationClient.java:804) 在 org.apache.hadoop.hbase.client.coprocessor.AggregationClient.rowCount(AggregationClient.java:306) 在 com.naver.hbase.Main.countRows(Main.java:131) 在 com.naver.hbase.Main.main(Main.java:58)

我该如何解决?

【问题讨论】:

能否也添加 aggregationClient 代码? 我使用了 Hbase 聚合客户端类 github.com/apache/hbase/blob/master/hbase-endpoint/src/main/… 【参考方案1】:

我最近遇到了同样的问题,通过向 rowCount 提供 ColumnInterpreter 解决了这个问题。下面是代码:

ColumnInterpreter ci = new LongColumnInterpreter();
long  rowCount = aggregationClient.rowCount(htable,  ci, scan);

【讨论】:

【参考方案2】:

好吧,rowCount 方法需要 3 个参数

long rowCount(final Table table, final ColumnInterpreter<R, S, P, Q, T> ci, final Scan scan) throws Throwable 

然后调用

final AggregateRequest requestArg = validateArgAndGetPB(scan, ci, false);

你正在传递ci = null,问题就在那里

【讨论】:

我不明白该说什么。你能解释一下我应该放什么吗? 我按照这个代码github.com/Kuntal-G/BigData-Analytics/blob/master/…

以上是关于validateArgAndGetPB 处的 Hbase countRow Nullpointer 异常的主要内容,如果未能解决你的问题,请参考以下文章

解决安装并配置好 hb后,hb -h检测不对

鸿蒙编译构建丨hb工具分析

HB filter基于FPGA的半带滤波器(HB) 的设计

hb_gui 启动报错

hb_gui 启动报错 RuntimeError: could not open display

debug(实验)