无法使用java客户端api扫描hbase中的表

hjqgdpho  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(387)

我正在尝试扫描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();
    }
}

这些是我的专业依赖

<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>

但问题是,当我运行这个方法时,我收到以下错误。
线程“main”java.lang.noclassdeffounderror中出现异常:org/apache/hadoop/hbase/util/softvaluesortedmap
原因:java.lang.classnotfoundexception:org.apache.hadoop.hbase.util.softvaluesortedmap
我怎样才能解决这个问题?

ncgqoxb0

ncgqoxb01#

你的类路径好像少了一些jar。您可能忘记了将util jar添加到类路径,或者由于某些原因它没有被包含(可能是maven by tag故意排除在外)

3pvhb19x

3pvhb19x2#

通过向项目添加以下依赖性解决了问题

<dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>0.96.0-hadoop2</version>
    </dependency>

相关问题