Hadoop(三)——Hive和Hbase整合

本文详细介绍了Hive与HBase整合的理论与实践,包括整合的原因、优缺点、整合前的准备、整合目标以及具体的操作步骤。通过案例展示了如何在Hive中创建与HBase关联的表,并通过HiveQL操作HBase数据。同时,文章还探讨了整合后的性能瓶颈,如Map Task和Scan RPC调用,并提出了优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



如何创建一个与hbase共享数据的hive表
set hbase.zookeeper.quorum=hadoop01:2181,hadoop02:2181,hadoop03:2181; 
set zookeeper.znode.parent=/hbase;


//hive 创建表
CREATE EXTERNAL TABLE hbase.hbase_hive02 (
rowkey string,
family1 map<STRING,STRING>

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,family1:")
TBLPROPERTIES ("hbase.table.name" = "hadoop3_1:hbase_hive02");


//hbase  不需要创建表
create 'hadoop3_1:hbase_hive02', NAME => 'family1' 


// 在hbase 添加数据:
...




效果 :
hive> select * from hbase_hive02;
OK
rowkey1 {"address":"北京","gender":"男","name":"你要疯"}
rowkey2 {"id":"1"}


hive> select family1['gender'] from hbase_hive02;
OK

NULL


hive> select family1['gender'] from hbase_hive02 where family1['gender'] is not null;
OK





六、Hive和Hbase整合理论
1、为什么hive要和hbase整合
2、整合的优缺点
优点:
(1).Hive方便地提供了Hive QL的接口来简化MapReduce的使用,
  而HBase提供了低延迟的数据库访问。如果两者结合,可以利
  用MapReduce的优势针对HBase存储的大量内容进行离线的计算和分析。
(2).操作方便,hive提供了大量系统功能
缺点:
  性能的损失,hive有这样的功能, 他支持通过类似sql语句的语法来操作hbase
  中的数据, 但是速度慢。


3、整合需要做什么样的准备工作
4、整合后的目标
(1). 在hive中创建的表能直接创建保存到hbase中。
(2). 往hive中的表插入数据,数据会同步更新到hbase对应的表中。
(3). hbase对应的列簇值变更,也会在Hive中对应的表中变更。
(4). 实现了多列,多列簇的转化:(示例:hive中3列对应hbase中2列簇)


5、hive和Hbase整合后如果通信?
查看hive和Hbase通信图:
主要是通过hive 的lib目录下的hive-hbase-handler-1.2.1.jar来实现hive
和Hbase通信。


二、Hive和Hbase整合案例操作


案例一:


(1). 在hive中创建的表能直接创建保存到hbase中。(Hive表多个字段)
create database hbase;
create table if not exists hbase.hive_hbase01(
eID int,
eName String,
eAge int,
eSex String,
eAddress String
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf_info:eName,cf_info:eAge,cf_info:eSex,cf_beizhu:eAddress")
TBLPROPERTIES (&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值