Hive和HBase整合

简介:

Hive和Hbase有各自不同的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。Hive集成Hbase就是为了使用hbase的一些特性。

Hive继承HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等。在集成的过程中注意维持HBase jar包的一致性。Hive集成HBase需要在Hive表和HBase表之间建立映射关系,也就是Hive表的列和列类型与HBase表的列族及列限定词建立关联。每一个在Hive表中的域都存在与HBase中,而在Hive表中不需要包含所有HBase中的列。HBase中的rowkey对应到Hive中为选择一个域使用 :key 来对应,列族(cf:)映射到Hive中的其他所有域,列为(cf:cq)。

下面来简单实战下:

创建HBase表

 
  1. create 'user1',{NAME => 'info',VERSIONS => 1} 

向user表中插入一些数据

 
  1. put 'user1','1','info:name','zhangsan' 
  2. put 'user1','1','info:age','25' 
  3. put 'user1','2','info:name','lisi' 
  4. put 'user1','2','info:age','22' 
  5. put 'user1','3','info:name','wangswu' 
  6. put 'user1','3','info:age','21' 

使用scan命令来查看下user表中的数据

 
  1. scan 'user'; 

结果如下

ROW COLUMN+CELL

1 column=info:age, timestamp=1476773051604, value=25

1 column=info:name, timestamp=1476773046344, value=zhangsan

2 column=info:age, timestamp=1476773051685, value=22

2 column=info:name, timestamp=1476773051661, value=lisi

3 column=info:age, timestamp=1476773052632, value=21

3 column=info:name, timestamp=1476773051709, value=wangswu

3 row(s) in 0.0610 seconds

创建Hive中与HBase中对应的表

 
  1. SET hbase.zookeeper.quorum=hadoop001
  2. SET zookeeper.znode.parent=/hbase; 
  3. ADD jar /opt/bigdata/hive-1.2.1-bin/lib/hive-hbase-handler-1.2.1.jar; 
  4. // user1表 
  5. CREATE EXTERNAL TABLE user1 ( 
  6. rowkey string, 
  7. info map<STRING,STRING> 
  8. ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  9. WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:") 
  10. TBLPROPERTIES ("hbase.table.name" = "user1"); 
  11. // user2表 
  12. CREATE EXTERNAL TABLE user2 ( 
  13. rowkey string, 
  14. name string, 
  15. age int 
  16. ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  17. WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age") 
  18. TBLPROPERTIES ("hbase.table.name" = "user2"); 

查询user1,user2表数据

查询user1表数据

 
  1. select * from user1; 

结果如下

 
  1. OK 
  2. 1       {"age":"25","name":"zhangsan"} 
  3. 2       {"age":"22","name":"lisi"} 
  4. 3       {"age":"21","name":"wangswu"} 
  5. Time taken: 0.467 seconds, Fetched: 3 row(s) 

查询user2表数据

 
  1. select * from user2; 

结果如下:

 
  1. OK 
  2.  
  3. 1 zhangsan 25 
  4.  
  5. 2 lisi 22 
  6.  
  7. 3 wangswu 21 
  8.  
  9. Time taken: 0.087 seconds, Fetched: 3 row(s) 

hive插入数据到hbase

 
  1. INSERT INTO TABLE user1 
  2. SELECT '4' AS rowkey, 
  3. map('name','lijin','age','22') AS info 
  4. from dual limit 1; 


本文作者:佚名

来源:51CTO

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
|
1月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
89 7
|
4月前
|
SQL 分布式数据库 HIVE
Hbase 和Hive表关联
Hbase 和Hive表关联
39 0
|
4月前
|
SQL 分布式数据库 HIVE
Hbase二级索引_Hive on Hbase 及phoenix详解
Hbase二级索引_Hive on Hbase 及phoenix详解
43 0
|
4月前
|
SQL 分布式计算 分布式数据库
HBase 和 Hive 你能分清楚吗?(转拉勾教育)
HBase 和 Hive 你能分清楚吗?(转拉勾教育)
31 0
|
4月前
|
存储 SQL 分布式数据库
分布式数据恢复-hbase+hive分布式存储数据恢复案例
hbase+hive分布式存储数据恢复环境: 16台某品牌R730XD服务器节点,每台物理服务器节点上有数台虚拟机,虚拟机上配置的分布式,上层部署hbase数据库+hive数据仓库。 hbase+hive分布式存储故障&初检: 数据库文件被误删除,数据库无法使用。 通过现场对该分布式环境的初步检测,发现虚拟机还可以正常启动,虚拟机里面的数据库块文件丢失。好在块文件丢失之后没有对集群环境写入数据,底层数据损坏可能性比较小。
|
7月前
|
SQL 分布式计算 分布式数据库
大数据Sqoop借助Hive将Mysql数据导入至Hbase
大数据Sqoop借助Hive将Mysql数据导入至Hbase
153 0
|
4月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
97 1
|
4月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
74 0
|
6月前
|
SQL 分布式计算 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
68 0