首页 > 代码库 > Hive 导入 Hbase

Hive 导入 Hbase

1  用hbase工具导入 实际上市从hdfs 到hbase 的过程。 hive表的hdfs 路径为 ${hive.metastore.warehouse.dir}

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,info:userid name  /user/hive/warehouse/hive_hbase/*

 

2 创建HIVE->hbase映射表 

CREATE TABLE employee_hbase
(key string,age int,sex string)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,info:age,info:sex") TBLPROPERTIES ("hbase.table.name"="employee");

其中 Hive 表名:employee_hbase 有 key,age,sex 三列
HBase表名:employee_hbase 有 rowkey = key 列族 info 列 age sex  ... (key 是固定值)
名称一一对应

利用 insert into table employee_hbase select name as key,age,sex from employee;可以将已有Hive 数据导入到HBase

 

 

异常解决:

java.lang.IllegalArgumentException: The value of property hive.passthrough.storagehandler.of must not be null
Job Submission failed with exception ‘java.lang.IllegalArgumentException(The value of property hive.passthrough.storagehandler.of must not be null)‘

 

 

原因是创建了外部的映射表 。

CREATE EXTERNAL TABLE paint_action_prop_hbase (
uid string,
project_type string ,
avg_month_pv float,

....

把 EXTERNAL 去掉。删除hbase表。

 

Hive 导入 Hbase