文章目录
Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql语句进行查询、插入操作以及进行Join和Union等复杂查询,同时也可以将hive表中的数据映射到Hbase中
1.1 HBase与Hive的对比
1.1.1 Hive
- 数据仓库工具
Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。 - 用于数据分析、清洗
Hive适用于离线的数据分析和清洗,延迟较高。 - 基于HDFS、MapReduce
Hive存储的数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行。
1.1.2 HBase
-
数据库
是一种面向列存储的非关系型数据库。 -
用于存储结构化和非结构话的数据
适用于单表非关系型数据的存储,不适合做关联查询,类似JOIN等操作。 -
基于HDFS
数据持久化存储的体现形式是Hfile,存放于DataNode中,被ResionServer以region的形式进行管理。 -
延迟较低,接入在线业务使用
面对大量的企业数据,HBase可以直线单表大量数据的存储,同时提供了高效的数据访问速度。
1.1.3 总结:Hive与HBase
Hive和Hbase是两种基于Hadoop的不同技术,Hive是一种类SQL的引擎,并且运行MapReduce任务,Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库,Hive可以用来进行统计查询,HBase可以用来进行实时查询,数据也可以从Hive写到HBase,或者从HBase写回Hive。
1.2 整合配置
1.2.1 拷贝jar包
- 将HBase的五个jar包拷贝到hive的lib目录下
- hbase的jar包都在/zzz/install/hbase-1.2.0-cdh5.14.2/lib
- 需要拷贝五个jar包名字如下
hbase-client-1.2.0-cdh5.14.2.jar
hbase-hadoop2-compat-1.2.0-cdh5.14.2.jar
hbase-hadoop-compat-1.2.0-cdh5.14.2.jar
hbase-it-1.2.0-cdh5.14.2.jar
hbase-server-1.2.0-cdh5.14.2.jar
- 直接在node03执行以下命令,通过创建软连接的方式来进行jar包的依赖
ln -s /zzz/install/hbase-1.2.0-cdh5.14.2/lib/hbase-client-1.2.0-cdh5.14.2.jar /zzz/install/hive-1.1.0-cdh5.14.2/lib/hbase-client-1.2.0-cdh5.14.2.jar
ln -s /zzz/install/hbase-1.2.0-cdh5.14.2/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.2.jar /zzz/install/hive-1.1.0-cdh5.14.2/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.2.jar
ln -s /zzz/install/hbase-1.2.0-cdh5.14.2/lib/hbase-hadoop-compat-1.2.0-cdh5.14.2.jar /zzz/install/hive-1.1.0-cdh5.14.2/lib/hbase-hadoop-compat-1.2.0-cdh5.14.2.jar
ln -s /zzz/install/hbase-1.2.0-cdh5.14.2/lib/hbase-it-1.2.0-cdh5.14.2.jar /zzz/install/hive-1.1.0-cdh5.14.2/lib/hbase-it-1.2.0-cdh5.14.2.jar
ln -s /zzz/install/hbase-1.2.0-cdh5.14.2/lib/hbase-server-1.2.0-cdh5.14.2.jar /zzz/install/hive-1.1.0-cdh5.14.2/lib/hbase-server-1.2.0-cdh5.14.2.jar
1.2.2 修改hive的配置文件
- 编辑node03服务器上面的hive的配置文件hive-site.xml
cd /zzz/install/hive-1.1.0-cdh5.14.2/conf
vim hive-site.xml
- 添加以下两个属性的配置
<property>
<name>hive.zookeeper.quorum</name>
<value>node01,node02,node03</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01,node02,node03</value>
</property>
1.2.3 修改hive-env.sh配置文件
cd /zzz/install/hive-1.1.0-cdh5.14.2/conf
vim hive-env.sh
- 添加以下配置
export HADOOP_HOME=/zzz/install/hadoop-2.6.0-cdh5.14.2/
export HBASE_HOME=/zzz/install/hbase-1.2.0-cdh5.14.2
export HIVE_CONF_DIR=/zzz/install/hive-1.1.0-cdh5.14.2/conf