java - 无法使用 Java 客户端 API 扫描 Hbase 中的表

标签 java hadoop hbase hortonworks-data-platform

我正在尝试扫描 Hbase 中的表并检索其中的所有记录。这是我用来扫描表格的方法。我使用 Maven 构建项目。

 public void getAllRecord (String tableName) {
    try{
        HTable table = new HTable(configuration, tableName);
        Scan s = new Scan();
        ResultScanner ss = table.getScanner(s);
        for(Result r:ss){
            for(KeyValue kv : r.raw()){
                System.out.print(new String(kv.getRow()) + " ");
                System.out.print(new String(kv.getFamily()) + ":");
                System.out.print(new String(kv.getQualifier()) + " ");
                System.out.print(kv.getTimestamp() + " ");
                System.out.println(new String(kv.getValue()));

                break;
            }
        }
    } catch (IOException e){
        e.printStackTrace();
    }
}

这些是我的 Maven 依赖项

 <dependencies>
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-thrift</artifactId>
        <version>0.98.2-hadoop2</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>0.96.0-hadoop2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-auth</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.opennlp</groupId>
        <artifactId>opennlp-tools</artifactId>
        <version>1.5.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.opennlp</groupId>
        <artifactId>opennlp-maxent</artifactId>
        <version>3.0.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>4.9.0</version>
    </dependency>

</dependencies>

但问题是当我运行这个方法时,我收到以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/SoftValueSortedMap

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.util.SoftValueSortedMap

我该如何解决这个问题?

最佳答案

您的类路径中似乎缺少一些 jars。您要么忘记将 util jar 添加到类路径,要么由于某种原因未包含它(可能是 标记故意将其排除在 maven 中)

关于java - 无法使用 Java 客户端 API 扫描 Hbase 中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742284/

相关文章:

java - 高效查询Hbase

java - hibernate 错误随机出现

java - 如何在 Java 中将 STRING 转换为 VARBINARY?

hadoop - 在 pig 中正确加载日期时间

hadoop - 如何将手动复制的hbase文件集成到hbase实例中?

java - HBase 未在 Windows 上以独立模式启动

java - 获取 org.dom4j.DocumentException : feature read only while deploying war file in tomcat of linux 异常

java - 插入排序-语法问题

hadoop - 在SIG中从SUM获得MAX

apache-spark - 在 rapidminer : error occurred during submitting or starting the spark job 上运行 Spark