栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HBase Hive集成使用

HBase Hive集成使用

1. Hbase 与 Hive

Hbase: Hadoop database 的简称,是一种 NoSQL 数据库,主要适用于海量明细数据(十亿、百亿)的随机实时存储与查询,如日志明细、交易清单、轨迹行为等

Hive: Hadoop 的数据仓库,通过 HQL 来处理和计算 HDFS 的数据,HQL 将转化为 Mapreduce 来处理数据,适用于离线的批量数据计算。

二者关系: Hive 对 HDFS 上的数据进行清洗、处理和计算后,可将用于海量数据随机查询的查询的数据存入 Hbase。

Hive 相当于 SQL 引擎,Hbase 相当于数据库!

2. 集成使用

版本说明:

hive:hive-2.3.9

hbase:hbase-2.1.7

2.1 环境准备

如果想要使用 Hive 操作 Hbase,那么 Hive 需要持有操作 Hbase 的相关 Jar 包,所以我们需要将这些 Jar 包复制(或以软连接的形式)到 Hive 环境下。并且还需要操作 Hbase JavaAPI 时,配置 Zookeeper 的相关信息。(十分简单!)

2.1.1 Jar 包准备

以下都是用绝对路径:(路径换成自己的)

ln -s /opt/hbase-2.1.7/lib/hbase-common-2.1.7.jar /opt/hive-2.3.9/lib/
ln -s /opt/hbase-2.1.7/lib/hbase-server-2.1.7.jar /opt/hive-2.3.9/lib/
ln -s /opt/hbase-2.1.7/lib/hbase-client-2.1.7.jar /opt/hive-2.3.9/lib/
ln -s /opt/hbase-2.1.7/lib/hbase-protocol-2.1.7.jar /opt/hive-2.3.9/lib/
ln -s /opt/hbase-2.1.7/lib/hbase-it-2.1.7.jar /opt/hive-2.3.9/lib/
ln -s /opt/hbase-2.1.7/lib/hbase-hadoop2-compat-2.1.7.jar /opt/hive-2.3.9/lib/
2.1.2 修改配置文件

修改 Hive 的配置文件 hive-site.xml,添加如下内容:(主机名换成自己的)


    hive.zookeeper.quorum
    node1,node2,node3


    hive.zookeeper.client.port
    2181

2.2 使用

创建一张表并添加数据试试!

2.2.1 建表

进入 Hive 的客户端,插入一张表 hive_hbase_stu01_table:

create table hive_hbase_stu01_table(
    id int,
    name string)
stored by 'org.apache.hadoop.hive.hbase.HbaseStorageHandler'
with serdeproperties ("hbase.columns.mapping" = ":key,info:name")
tblproperties ("hbase.table.name" = "hbase_stu01_table");

此时,进入 Hbase ,查看是否存在表 hbase_stu01_table(由于未指定命名空间,则在 default 下):

2.2.2 插入数据
insert into table hive_hbase_stu01_table select * from stu01;
2.2.3 查询数据

在 Hive 查询该表:

select * from hive_hbase_stu01_table;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqY5M5nn-1641302070147)(https://cdn.jsdelivr.net/gh/JOEL-T99/Pic//img/image-20220104204908756.png)]

在 Hbase 中查询该表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U4vUUEP0-1641302070150)(https://cdn.jsdelivr.net/gh/JOEL-T99/Pic//img/image-20220104205006144.png)]

2.3 使用外部表

如果 Hbase 已经存在数据,而需要建立一个 Hive 的关联表时,可在 Hive 上创建一个外部表。

如果 Hbase 中已经存在某张表,再使用上面的方法建表时,就会报错,提示创建外部表!

创建外部表: (只多了一个关键字)

create external table hive_hbase_stu01_table(
    id int,
    name string)
stored by 'org.apache.hadoop.hive.hbase.HbaseStorageHandler'
with serdeproperties ("hbase.columns.mapping" = ":key,info:name")
tblproperties ("hbase.table.name" = "hbase_stu01_table");

 只多了一个关键字 external !

 


❤️ END ❤️
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号