千家信息网

HBase 与Hive数据交互整合过程详解

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Hive和Hbase整合理论1、为什么hive要和hbase整合2、整合的优缺点优点:(1).Hive方便地提供了Hive QL的接口来简化MapReduce的使用,而HBase提供了低延迟的数据库访
千家信息网最后更新 2026年10月31日HBase 与Hive数据交互整合过程详解

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中。

第一: 首先启动hive.进入交互式界面,然后创建表。

hive版本: apache-hive-1.2.1

hbase版本:apache-hbase-1.1.2

hadoop版本: hadoop-2.7.3

第一: 创建hbase能识别的表。

建表语句:

create table if not exists hive_hbase(

id int,

name String,

age int,

sex String,

address 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 ("hbase.table.name" = "ns2:hive_hbase01");


注意: 此处的 org.apache.hadoop.hive.hbase.HBaseStorageHandler 类是hive的lib包下的,需要替换成.hive-1.2.1版本的jar包。否则会报错提示找不到这个类。

错误提示:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V

也不能hive版本过高。比如2.x版本会报错

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

要确保hive目录的lib目录下有mysql-connector的数据库包。否则也会报错。

创建后可以在hbase中查看一下表。list

第二:

自己准备测试数据。此处省略

create table test(

id int,

name string)

row format delimited fields terminated by ','

lines terminated by '\n'

stored as textfile;

加载数据到表中:

load data local inpath '/usr/local/test01.txt' overwrite into table test;

通过结果集的方式插入数据到表中

insert overwrite table hive_hbase select * from test;

此处会跑mapreduce程序。过程省略。

第三: 在hbase中查询插入的 数据

select * from hive_hbase;

20170616,zhangshaoqi,22,nan,jincheng

20170617,xuqianya,29,nv,beijing

20170618,xiaolin,29,nv,jincheng

20170619,xiaopan,33,nan,guizhou

20170620,xiaohu,26,nan,shouzhou

1 row(s) in 3.19 seconds
第四:在hbase中扫描这个表,查看是否有数据

scan 'ns2:hive_hbase01'

第五: hive访问已经存在的hbase

需要使用external 类型的外部表,否则会报错

REATE EXTERNAL TABLE hbase_table_3(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name")
TBLPROPERTIES("hbase.table.name" = "student");
hive> CREATE EXTERNAL TABLE hbase_table_3(key int, value string)
> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name")
> TBLPROPERTIES("hbase.table.name" = "student");
OK
Time taken: 1.21 seconds

注意:如果hbase中列簇名name数据变更,那么hive中查询结果也会相应的变更,如果hbase中不是其他列簇
内容更新则hive中查询结果不显示

就这些了,有问题欢迎讨论


数据 整合 版本 会报 目录 结果 查询 通信 过程 内容 功能 数据库 语句 中创 准备 提示 更新 下有 交互式 优势 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 上海睿民互联网科技有限公司 江苏根荣互联网科技 科技金融是不是互联网金融 智能科技公司是互联网公司吗 网络科技有限互联网 深圳互联网络科技有限公司 九亚互联网科技 北京互联网络科技有限公司 善班互联网科技有限公司 科技创新互联网企业 左右互联网络科技 深圳卡尔迅互联网科技有限公司怎么样 崇明区互联网教育科技诚信经营 容联科技互联网电商 中国科技和美国互联网 中国互联网公司的科技投入 科技信息时代互联网发展 亚光科技低轨卫星互联网 互联网科技创业有什么好项目 云信互联网科技有限公司 疫情对互联网科技公司影响 科技信息互联网 鑫亿盛互联网科技 善班互联网科技有限公司 互联网 科技服务平台 互联网科技公司的市场部门 西安小鹰速贷互联网科技有限公司 每天都有哪些好的互联网科技 东营紫格互联网科技
0