Загрузить таблицу Hbase из улья - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь загрузить таблицу hbase из таблицы кустов, для этого я использую следующий подход, и он отлично работает, если у меня есть только одно семейство столбцов в таблице hbase, однако, если у меня несколько семейств, он выдает ошибку.

Подход

исходная таблица

CREATE EXTERNAL TABLE temp.employee_orc(id String, name String, Age int)
STORED AS ORC
LOCATION '/tmp/employee_orc/table';

Создание таблицы Hive с Hbase Serde

CREATE TABLE temp.employee_hbase(id String, name String, age int)
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,emp:name,emp:Age')
    TBLPROPERTIES("hbase.table.name" = "bda:employee_hbase", "hfile.family.path"="/tmp/employee_hbase/emp", "hive.hbase.generatehfiles"="true");

экспорт файлов hbase

SET hive.hbase.generatehfiles=true;
INSERT OVERWRITE TABLE temp.employee_hbase SELECT DISTINCT id, name, Age FROM temp.employee_orc CLUSTER BY id;

Загрузить таблицу hbase

export HADOOP_CLASSPATH=`hbase classpath`
hadoop jar /usr/hdp/current/hbase-client/lib/hbase-server.jar completebulkload /tmp/employee_hbase/ 'bda:employee_hbase'

Ошибка Я получаю следующую ошибку, если в таблице Hbase есть несколько семейств столбцов,

java.lang.RuntimeException: ошибка времени выполнения Hive при закрытии операторов: java.io.IOException: несколько каталогов семейства находятся в hdfs: //hadoopdev/apps/hive/warehouse/temp.db/employee_hbase/_teilitary/0/_tevent/попытки_1527799542731_1180_r_000000_0

есть ли другой способ загрузки таблицы Hbase, если не этот подход?

1 Ответ

0 голосов
/ 06 июня 2018

Массовая загрузка из куста в hbase. Таблица назначения может иметь только одно семейство столбцов.

Массовая загрузка hbase

...