前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0693-6.2.0-如何将Hive数据导入HBase

0693-6.2.0-如何将Hive数据导入HBase

作者头像
Fayson
发布2019-09-03 16:47:37
2.1K0
发布2019-09-03 16:47:37
举报
文章被收录于专栏:Hadoop实操Hadoop实操Hadoop实操

文档编写目的

在一些业务场景中需要将Hive的数据导入到HBase中,通过HBase服务为线上业务提供服务能力。本篇文章Fayson主要通过在Hive上创建整合HBase表的方式来实现Hive数据导入到HBase。

  • 测试环境

1.Redhat7.2

2.采用root用户操作

3.CM/CDH6.2.0

创建Hive与HBase关联表

2.1 创建同步关联表

1.在Hive的命令行执行如下SQL创建Hive与HBase关联表

CREATE TABLE hive_hbase_table(
    key int, 
    name String,
    age String
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:name,cf1:age") 
TBLPROPERTIES ("hbase.table.name" = "hbase_table", "hbase.mapred.output.outputtable" = "hbase_table");

2.在HBase Shell命令行查看

3.删除hive_hbase_table表

再次登录HBase Shell查看hbase_table表已不存在被删除

可以看到通过上述命令创建Hive与HBase关联表,如果HBase表不存在时会自动创建,但通过Hive将表删除时也同时会删除与之关联的HBase表。

2.2 创建外部关联表

1.在HBase上创建一个hbase_hive表

hbase(main):003:0> create 'hbase_table','cf1'
hbase(main):004:0> list

2.在Hive上执行如下SQL创建Hive与HBase关联的外部表

CREATE EXTERNAL TABLE hive_hbase_table(
    key int, 
    name String,
    age String
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:name,cf1:age") 
TBLPROPERTIES ("hbase.table.name" = "hbase_table", "hbase.mapred.output.outputtable" = "hbase_table");

3.在Hive上执行drop操作,HBase表不会被同步删除

HBase表依然存在不会被同步删除

可以看到通过创建Hive与HB 从vase的外部关联表,在删除Hive表的时候并不会同步的将HBase表删除。

Hive表导数到HBase表

1.准备一个hive的测试表,这里测试表的字段与之前创建的Hive与HBase关联表字段一致,为了能够方便的将数据导入到HBase表中

hive> create table hive_data (key int,name String,age string);
hive> insert into hive_data values(1,"za","13");
hive> insert into hive_data values(2,"ff","44");
hive> select * from hive_data;

查看hive_data表的数据,插入数据成功。准备完毕。

2.通过如下SQL语句将hive表的数据导入到Hive与HBase的关联表中,从而实现Hive数据写入HBase

hive> insert into table hive_hbase_table select * from hive_data;
hive> select * from hive_hbase_table;

然后在HBase中查看表hbase_table的数据,也同步了过来,数据与hive表中的数据一致,导入成功。

hbase(main):014:0> scan 'hbase_table'

通过如上方式可以方便的将Hive表的数据写入到HBase表中,为线上业务提供数据服务。

总结

1.未使用EXTERNAL关键字创建Hive与HBase关联表时,如果HBase表不存在会自动创建,且删除Hive表的同时也会删除HBase表。

2.使用EXTERNAL关键字创建Hive与HBase关联表时,HBase表必须存在,且删除Hive表是不会删除HBase表。

3.通过Hive创建与HBase关联的表后,可以方便的使用SQL语句方便的向HBase表中写入数据。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档