Невозможно сканировать таблицу в Hbase с помощью Java Client API

1

Я пытаюсь сканировать таблицу в 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>

Но проблема в том, что когда я запускаю этот метод, я получаю следующую ошибку.

Исключение в потоке "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/SoftValueSortedMap

Вызвано: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.util.SoftValueSortedMap

Как я могу решить эту проблему?

Теги:
hadoop
hortonworks-data-platform
hbase

2 ответа

0
Лучший ответ

Решена проблема, добавив следующую зависимость от проекта

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

Кажется, что некоторые кувшины отсутствуют в вашем пути к классу. Вы либо забыли добавить утилиту jar в classpath, либо по какой-то причине она не была включена (возможно, это было намеренно исключено с помощью maven by тег)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню