Hive系列:Hive 整合 HBase

为何 Hive 要整合 HBase

HBase 不支持标准 SQL 语句,而且 HBase 做统计分析也不支持 Join 表操作,而这些功能是 Hive 所具备的,所以在实际的生产环境中将二者整合并让 HBase 表中的数据可以使用 Hive SQL 语句及 Join 分析是很有必要的。

整合步骤

注:进入了 hive 的 shell 命令行界面

1. 指定 hive 中 hbase 的 zookeeper 的访问路径
bash 复制代码
set hbase.zookeeper.quorum=node-01:2181,node-02:2181,node-03:2181;
2. 指定 hbase 在 zookeeper 中存储数据的节点
bash 复制代码
set zookeeper.znode.parent=/hbase;
3. 将 hive-habse 整合的 jar 包放在 hive 的 classpath 下
bash 复制代码
add jar /root/apps/hive-3.1.2/lib/hive-hbase-handler-3.1.2.jar;

整合完成:)

验证

1. 在 HBase 中建表
bash 复制代码
hbase(main):001:0> create 't_hive_hbase','base_info','extra_info'
Created table t_hive_hbase
Took 1.9468 seconds
=> Hbase::Table - t_hive_hbase

# 插入表数据
hbase(main):002:0> put 't_hive_hbase','001','base_info:name','zhangsan'
Took 2.3504 seconds
hbase(main):003:0> put 't_hive_hbase','001','base_info:age','28'
Took 0.0128 seconds
hbase(main):004:0> put 't_hive_hbase','001','extra_info:phone','13500412502'
2. 在 Hive 中建表并关联 HBase 表
bash 复制代码
create external table t_hive_hbase(rowkey string, base_info map<string, string>, extra_info map<string, string>) 
row format delimited fields terminated by '\t' 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping" = ":key,base_info:,extra_info:") 
tblproperties ("hbase.table.name" = "t_hive_hbase");

必要的参数解释:

  • hbase.columns.mapping:指定 HBase 和 Hive 表的字段的映射关系
  • :key:获取 rowkey
  • base_info:列名:获取 base_info:列名的值,不写就是默认获取全部
  • extra_info:列名:获取 extra_info:列名的值,不写就是默认获取全部
2. 在 Hive 中执行 SQL 查询
sql 复制代码
select * from t_hive_hbase;

+----------------------+---------------------------------+--------------------------+
| t_hive_hbase.rowkey  |     t_hive_hbase.base_info      | t_hive_hbase.extra_info  |
+----------------------+---------------------------------+--------------------------+
| 001                  | {"age":"28","name":"zhangsan"}  | {"phone":"13500412502"}  |
+----------------------+---------------------------------+--------------------------+
相关推荐
AllData公司负责人13 小时前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
泰克教育官方账号16 小时前
泰涨知识 | Hive集群环境部署
数据仓库·hive·hadoop
婉然从物17 小时前
Flink SQL 元数据持久化实战:从“每次重启表消失”到“Hive Metastore 永久存储”
hive·sql·flink
龙石数据1 天前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
心中有国也有家1 天前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
DataPulse*2 天前
Hive常用参数调优十二板斧
hive·hadoop·硬件架构
TTBIGDATA2 天前
【Ambari Plus】12.Flink 安装
hive·hadoop·flink·ambari·hdp·cdh·bigtop
心中有国也有家2 天前
Flutter 鸿蒙适配第一步:从 hive 迁移到 hive\_ce
hive·学习·flutter·华为·harmonyos
心中有国也有家2 天前
鸿蒙 Flutter 本地存储实战:Hive CE 从入门到精讲
人工智能·hive·flutter·华为·harmonyos
AllData公司负责人3 天前
AIIData数据中台集成OpenMetadata开源项目,成功运行Hive数据血缘拾取任务,支持库级别+表级别+字段级血缘!
大数据·数据库·数据仓库·人工智能·hive·hadoop·开源