hive与hbase整合

Hive与HBase 整合使用

 

1.     在Hive中创建Hbase识别的表方法

CREATE TABLE IF NOTEXISTS user_time_day (

telno STRING,

province STRING,

time_tag_1 STRING,

time_tag_2 STRING

)

stored by'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping"=":key,cf1:province,cf2:tag1,cf2:tag2")tblproperties("hbase.table.name"="hbase_table_1");

 

注解:

hbase.table.name定义在hbase的table名称 

hbase.columns.mapping定义在hbase的列族,里面的:key 是固定值而 且是唯一值

cf1:province 是hbase中的列簇+qualifier

 

2.     登录hbase查看表及表结构

3.     创建数据加载表

CREATE TABLE IF NOTEXISTS hive_user_time_day (

telno STRING,

province STRING,

time_tag_1 STRING,

time_tag_2 STRING

)

ROW FORMAT DELIMITEDFIELDS TERMINATED BY '|' ;

 

4.     测试数据 user_time_day.txt

13009700739|011|20-22|20-22

13009703673|011|20-22|20-22

13009701115|011|16-18|16-18

13009705835|011|22-24|12-14

13009719309|011|20-22|12-14

5.     加载数据到hive 表中

load data localinpath '/opt/hive/user_time_day.txt' into table hive_user_time_day;

6.     增量加载 到hbase 表中(overwrite 无效 )

insert overwritetable user_time_day select * from hive_user_time_day;

7.     hive client端查看表内容

8.     hbase client端查看内容

9.     hbase client 添加数据

10. hive client 查看数据

11. hive client 添加数据到hive_user_time_day表中,然后通过insert 语句数据到hbase表中

12. hive client端查看数据

13. hbase端数据验证

 

需要注意的事项:

#在hive中创建有分区的表与hbase整合后,使用 

Select * from  user_time_day_p ; 命令无法看到表中的记录,使用

Select telno,province from  user_time_day_p ;可以看到记录。 

分析原因:

select *在普通表中是直接读取HDFS文件。在这里是直接从HBase进行查

询。应该是查询成功了,但是hive并不会展示。

其它情况需要运行mapreduce,就没有问题了。

整合的表不支持修改

FAILED: Error in metadata: Cannot use ALTER TABLE on a non-native

table

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值