Я пытаюсь загрузить таблицу 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, если не этот подход?