如何将Hive与HBase整合联用

本文介绍了如何将Hive与HBase整合,以实现大数据的高效分析和存储。通过Hive,可以对HBase数据进行JOIN、GROUP等SQL查询,同时支持批量数据导入。文中详细阐述了整合的适用场景、依赖条件、配置步骤,并提供示例操作,展示了数据在Hive和HBase之间的交互操作。
摘要由CSDN通过智能技术生成

特别说明:该专栏文章均来源自微信公众号【大数据实战演练】,欢迎关注!

版本说明:

HDP:3.0.1.0

Hive:3.1.0

HBase:2.0.0

一、前言

之前学习 HBase 就有疑惑,HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。

不过,Hive 与 HBase 的整合可以实现我们的这个目标。不仅如此,还能通过 Hive 将数据批量地导入到 HBase 中。

Hive 与 HBase 整合的实现是利用两者本身对外的 API 接口互相通信来完成的,其具体工作交由 Hive 的 lib 目录中的 hive-hbase-handler-xxx.jar 工具类来实现对 HBase 数据的读取。

二、适用场景

Hive 与 HBase 整合的适用场景:

1、通过 Hive 与 HBase 整合,可以将 HBase 的数据通过 Hive 来分析,让 HBase 支持 JOIN、GROUP 等 SQL 查询语法。

2、实现将批量数据导入到 HBase 表中。

三、依赖条件

需要有以下依赖,ambari 已经为我们做好了这一切:

  • 已有 HDFS、MapReduce、Hive、Zookeeper、HBase 环境。
  • 确保 Hive 的 lib 目录下有 hive-hbase-handler-xxx.jar、Zookeeper jar、HBase Server jar、HBase Client jar 包。

四、使用HBase Hive集成

注意,这里与HDP 2.x不同:在 HDP 3.0 中对 Hive-3.1.0 的更改是所有 StorageHandler必须标记为“外部”,没有 StorageHandler 创建的非外部表。如果在创建 Hive 表时存在相应的 HBase 表,它将模仿“外部”表的 HDP 2.x 语义。如果在创建 Hive 表时不存在相应的 HBase 表,则它将模仿非外部表的 HDP 2.x 语义。

总结: 不管 HBase 表是否存在,在 Hive 中都要使用 external 表来与 HBase 表进行关联,如果关联的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值