HBase和Hive整合
时间:2022-06-10
本文章向大家介绍HBase和Hive整合,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
HBase版本:1.2.6 Hive版本:1.2.1
1. 把HIVE_HOME/lib/hive-hbase-handler-1.2.1.jar 复制到HBASE_HOME/lib/下
2. 把HBASE_HOME/lib下所有的jar 复制到HIVE_HOME/lib/下
# -n 表示对于目标路径下已经存在的文件,则不复制过去
cp -n $HBASE_HOME/lib/* $HIVE_HOME/lib/
3. 修改hive-site.xml文件,增加hbase的zookeeper集群信息
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
hive集群和hbase集群的所有机器都要做以上修改
4. 验证
(1) 创建hbase表"student"
其中内容如下:
hbase(main):025:0> scan 'student'
ROW COLUMN+CELL
0001 column=info:age, timestamp=1516139523768, value=15
0001 column=info:name, timestamp=1516139523388, value=Madeline
0002 column=info:age, timestamp=1516139523820, value=16
0002 column=info:name, timestamp=1516139523469, value=Jed
0003 column=info:age, timestamp=1516139523862, value=17
0003 column=info:name, timestamp=1516139523607, value=Olivia
0004 column=info:age, timestamp=1516139523908, value=18
0004 column=info:name, timestamp=1516139523680, value=Jed
0005 column=info:age, timestamp=1516139525527, value=19
0005 column=info:name, timestamp=1516139523725, value=Sarah
(2) 创建与该hbase表关联的hive表,需为外部表
- 关联所有列
CREATE EXTERNAL TABLE hive_student (key string,info map<string, string>)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:")
TBLPROPERTIES ("hbase.table.name" = "student");
hive> select * from hive_student;
OK
0001 {"age":"15","name":"Madeline"}
0002 {"age":"16","name":"Jed"}
0003 {"age":"17","name":"Olivia"}
0004 {"age":"18","name":"Jed"}
0005 {"age":"19","name":"Sarah"}
hive> select key, info['name'], info['age'] from hive_student;
OK
0001 Madeline 15
0002 Jed 16
0003 Olivia 17
0004 Jed 18
0005 Sarah 19
- 关联指定列
CREATE EXTERNAL TABLE hive_student_name (key string,name string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name")
TBLPROPERTIES ("hbase.table.name" = "student");
hive> select * from hive_student_name;
OK
0001 Madeline
0002 Jed
0003 Olivia
0004 Jed
0005 Sarah
5. 说明
1-3步骤不是必须的,如果没有进行1-3步骤的设置,那么想要让hive和hbase整合,每次进入hive命令行后,需要进行如下配置:
(1) 指定 hbase 所使用的 zookeeper 集群的地址:默认端口是 2181,可以不写
set hbase.zookeeper.quorum=node01:2181,node02:2181,node03:2181;
(2) 指定 hbase 在 zookeeper 中使用的根目录
set zookeeper.znode.parent=/var/zookeeper/local;
# 该路径在hbase-site.xml可以查询,你在搭建hbase集群的时候,这个参数是必须设置的
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/zookeeper/local</value>
</property>
(3) 加入指定的处理 jar
add jar /home/hadoop/apps/hive-1.2.1/lib/hive-hbase-handler-1.2.1.jar;
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Docker中Image、Container与 Volume 的迁移
- 浙大版《C语言程序设计(第3版)》题目集 习题8-1 拆分实数的整数与小数部分
- 如何在 Linux 上恢复误删除的文件或目录
- 浙大版《C语言程序设计(第3版)》题目集 习题8-2 在数组中查找指定元素
- Pandas学习笔记之时间序列总结
- HTML+JS动态获取当前时间
- HTML+JS实现时钟
- SQL-spj库创建脚本
- Sublime Text3 通过Package Control安装插件时找不到可用安装包的解决方法
- SwiftUI:手动发布 ObservableObject 更改
- 卧槽,又一款 Markdown 组合神器!!!
- SQL-查询各工程项目使用所提供零件最多的供应商
- 浙大版《C语言程序设计(第3版)》题目集 习题8-3 数组循环右移
- SwiftUI:控制图像插值
- SQL-查询比p6零件供应数量都高的零件