java - HBase 获取扫描器异常 - "This is supposed to be overridden by subclasses"

标签 java hadoop hbase protobuf-net

我正在尝试运行以下代码:

Cluster cluster = new Cluster();
cluster.add("localhost", port_number);
Client client = new Client(cluster);
RemoteHTable table = new RemoteHTable(client, "my_table");
Scan scan = new Scan();
scan.setStartRow(startKey);
scan.setStopRow(endKey);
scan.addFamily(columnFamily);
ResultScanner scanner = table.getScanner(scan);

但最后一行抛出:

Exception in thread "main" java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.
    at com.google.protobuf.GeneratedMessage.getUnknownFields(GeneratedMessage.java:180)
    at org.apache.hadoop.hbase.rest.protobuf.generated.ScannerMessage$Scanner.getSerializedSize(ScannerMessage.java:274)
    at com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:62)
    at org.apache.hadoop.hbase.rest.model.ScannerModel.createProtobufOutput(ScannerModel.java:705)
    at org.apache.hadoop.hbase.rest.client.RemoteHTable$Scanner.(RemoteHTable.java:510)
    at org.apache.hadoop.hbase.rest.client.RemoteHTable.getScanner(RemoteHTable.java:620)
    at com.amazon.cq.banyan.hbase.example.HBaseRestClient.main(HBaseRestClient.java:55)

This is my pom.xml:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.6.0</version>
</dependency>

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase</artifactId>
    <version>0.94.18</version>
</dependency>

尝试执行 Put 时也会发生这种情况。

最佳答案

这是由于使用了不同版本的 protobuf jar。此链接将帮助您理解问题 https://code.google.com/p/protobuf/issues/detail?id=493

关于java - HBase 获取扫描器异常 - "This is supposed to be overridden by subclasses",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044309/

相关文章:

java - 如何仅知道文件名来检查文件是否存在?

java - 组合包含 HashMap 的数组列表

java - Spring BeanFactoryAware 和 ApplicationContextAware 有什么区别?

dictionary - Hive-XML-SerDe-键/值对-映射

hadoop - 使用hadoop 20-append和hbase 90.3是否会中断?

hadoop - HDP : unable to start Phoenix sqlline. py

java - spring 、 java servlet 和 tomcat 在将 url 映射到资源方面的确切关系是什么?

hadoop - 如何将大变量广播到Spark中每个节点的本地磁盘

hadoop - 重新部署后HBase协处理器未更新

mysql - 从 Sql 数据库迁移到 NoSql 数据库的限制