#博学谷IT技术支持#
一、HBase集成Hive步骤
1. 拷贝Hive提供的一个专门用于集成HBase的通信jar包到HBase的lib目录下
hive安装在node1节点上: 在node1节点上执行
cd /export/server/hive/lib/
cp hive-hbase-handler-3.1.2.jar /export/server/hbase/lib/拷贝后, 将此jar包 分发给 node2和node3的hbase的lib目录下:
cd /export/server/hbase/lib/
scp hive-hbase-handler-3.1.2.jar node2:$PWD
scp hive-hbase-handler-3.1.2.jar node3:$PWD
2. 修改Hive的配置文件:hive-site.xml
cd /export/server/hive/conf/
vim hive-site.xml添加以下相关内容:
<property>
<name>hive.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property><property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property><property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
3. 修改Hive的环境配置文档:hive-env.sh
cd /export/server/hive/conf/
vim hive-env.sh添加一行内容:
export HBASE_HOME=/export/server/hbase
4. 启动相关软件
先启动zookeeper,再启动Hadoop集群,再启动Hive和HBase。
二、集成操作示例
1. 在HBase中创建一张表冰添加一些数据
create 'hbase_hive_score','cf'
put 'hbase_hive_score','rk001','cf:name','张三'
put 'hbase_hive_score','rk001','cf:age',20
put 'hbase_hive_score','rk001','cf:address','北京'
put 'hbase_hive_score','rk001','cf:score',92
put 'hbase_hive_score','rk002','cf:name','李四'
put 'hbase_hive_score','rk002','cf:age',22
put 'hbase_hive_score','rk002','cf:address','上海'
put 'hbase_hive_score','rk002','cf:score',84
put 'hbase_hive_score','rk003','cf:name','王五'
put 'hbase_hive_score','rk003','cf:age',28
put 'hbase_hive_score','rk003','cf:address','广州'
put 'hbase_hive_score','rk003','cf:score',60
2. 在Hive中集成HBase的对应表
create database day08_hbase;
create external table day08_hbase.hbase_hive_score (
id string,
name string,
age int,
address string,
score int
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties('hbase.columns.mapping'=':key,cf:name,cf:age,cf:address,cf:score')
tblproperties('hbase.table.name'='hbase_hive_score');