微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hive与 Hbase 的整合

Hive与 Hbase 的整合


MysqL+Hive:1、Centos7 MySQL安装 —— 用网盘简单安装

2、Hadoop集群搭建及配置⑨——Hive 可靠的安装配置

3、Spark SQ操作 MySQL数据库和 Hive数据仓库

4、Spark SQL RDD基本操作、RDD—DataFrame、API MySQL



1、简单易懂,手把手带小白用VMware虚拟机安装Linux centos7系统

2、Hadoop集群搭建及配置〇 —— Hadoop组件获取 & 传输文件

3、Hadoop集群搭建及配置① —— 克隆节点

4、Hadoop集群搭建及配置② —— 网络IP配置,连接网络

5、Hadoop集群搭建及配置③ —— 基础环境搭建

6、Hadoop集群搭建及配置④ —— JDK简介及其安装

7、Hadoop集群搭建及配置⑤ —— Zookeeper 讲解及安装

8、Hadoop集群搭建及配置⑥ —— Hadoop组件安装及配置

9、Hadoop集群搭建及配置⑦—— Spark&Scala安装配置

10、Hadoop集群搭建及配置⑧——Hbase的安装配置

11、HDFS的 Java API编程配置

12、HDFS的 java API 编程实现基本功能

13、HBase API java表操作


一、介绍

在安装好 zookeeper、hadoop、hbase、hive 基础上,才能继续下面操作,没有安装完成的可以点击上方链接,进行安装。

1.1 原因

在实际业务中,由于 HBase不支持使用 sql语法,因此我们操作和计算 HBase分布式数据库中的数据是非常不方便的,并且效率也低。

由于Hive支持标准的sql语句,因此,我们可以将HBase和Hive进行整合,通过使用Hive数据仓库操作HBase分布式数据库中的数据,以此来满足实际业务的需求。

二、文件配置

2.1 导入依赖 (master)

将目录 /hbase-1.2.4/lib下的相关依赖复制一份到目录/hive-2.1.1/lib下。

cp /usr/hbase/hbase-1.2.4/lib/hbase-common-1.2.4.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-server-1.2.4.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-client-1.2.4.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-protocol-1.2.4.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-it-1.2.4.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/htrace-core-3.1.0-incubating.jar /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-hadoop2-compat-1.2.4.jar  /usr/hive/hive-2.1.1/lib/

cp /usr/hbase/hbase-1.2.4/lib/hbase-hadoop-compat-1.2.4.jar /usr/hive/hive-2.1.1/lib/

在这里插入图片描述

  • hbase-common-1.2.4.jar 是 Hbase的基本包;
  • hbase-server-1.2.4.jar 主要用于hbase 的服务端;
  • hbase-client-1.2.4.jar 主要用于hbase 的客户端;
  • hbase-protocol-1.2.4.jar 主要用于hbase 的通信;
  • hbase-it-1.2.4.jar 主要用于hbase 整合其他框架做测试;
  • htrace-core-3.1.0-incubating.jar 主要用于其他框架(Hive,Spark) 连接Hbase;
  • hbase-hadoop2-compat-1.2.4.jar,hbase-hadoop-compat-1.2.4.jar 使得HBase可以兼容hadoop2.0 和其他版本。

2.2 修改 hive-site.xml (master)

<!--指定zookeeper集群的地址-->
<property>
        <name>hive.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
        <description>zookeeper集群的URL配置,多个host中用逗号(,)分割</description>
</property>

<!--指定zookeeper客户端的端口号-->
<property>
 <name>hive.zookeeper.property.client.port</name>
  <value>2181</value>
</property>

在这里插入图片描述

2.3 启动相关服务

cd /usr/zookeeper/zookeeper-3.4.10(此目录下)
# 1、三个节点都启动 zookeeper
bin/zkServer.sh start
bin/zkServer.sh status (注意已经生效环境变量,环境变量开机重启后要手动再生效!!)
bin/zkServer.sh stop(关闭)

# 2、master 节点启动 hadoop
/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh

# 3、slave1启动 Hive服务端(先)
/usr/hive/hive-2.1.1/bin/hive --service metastore

# 4、master 作为客户端开启 hive(后)
/usr/hive/hive-2.1.1/bin/hive

# 5、启动 hbase
/usr/hbase/hbase-1.2.4/bin/start-hbase.sh

在这里插入图片描述

三、Hbase 与 Hive连接

3.1 创建Hive表

创建 hive_hbase_test 库

create table hive_hbase_test(
id int,name string,sex string,interest string,age int,grade double)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping" = ":key,info:name,info:sex,info:interest,info:age,info:grade")
tblproperties ("hbase.table.name"="hbase_test");

org.apache.hadoop.hive.hbase.HBaseStorageHandler 语句是把 hbase 与 hive 关联起来,hive创建的表会映射到 hbase数据库,且映射表名字是:hbase_test .

在这里插入图片描述

3.2 创建中间表

由于不能将数据直接插入与 hbase 关联的Hive表 hive_hbase_test ,所以需要一个中间表 text。

3.3 插入数据

在linux 本地上创建 text.txt ,每个字段需要用 ‘\t’ 隔开。

1	liyi	female	reading	23	94.50
2	chener	man	baseketball	21	91.00
3	zhangning	female	writeing	20	79.00
4	lixi	female	pingpang	18	88.50
5	wangwu	man	baseball	16	78.00
6	huangting	female	reading	22	96.00
7	tianqi	man	baseketball	25	87.00

在这里插入图片描述


把数据插入 hive_hbase_test

# 向临时表text插入数据
load data local inpath '/usr/text.txt' into table text;

# 将临时表数据导入 hive_hbase_test
insert into table hive_hbase_test select * from text;

在这里插入图片描述

3.4 测试是否数据一致

# 1.hive 输入命令:
select * from hive_hbase_test;

# 2.hbase 输入命令:
scan 'hbase_test'

在这里插入图片描述


在这里插入图片描述


可以看出两者的数据是一致的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐