Hive与HBase集成


1 安装准备

下载最新稳定版的Hive,资源库http://mirror.esocc.com/apache/hive/

本文以当前的稳定版本0.11为例子,介绍基本的安装步骤。

$>tar -xvf hive-0.11.0.tar.gz
$>mv hive-0.11.0hive
#移动到指定的目录下
$>mvhive /opt/
这个教程的软件版本信息:
Hadoop-2.2.0 集群
HBase-0.94.14 集群
Zookeeper-3.4.5 集群
Hive-0.11


2 配置

  将Hive配置到环境变量中,hive用户下,输入下列命令:

$ vim~/.bashrc
exportJAVA_HOME=/usr/lib/jvm/jdk1.6.0_43
exportHADOOP_HOME=/opt/hadoop
exportHADOOP_MAPARED_HOME=${HADOOP_HOME}
exportHADOOP_COMMON_HOME=${HADOOP_HOME}
exportHADOOP_HDFS_HOME=${HADOOP_HOME}
exportYARN_HOME=${HADOOP_HOME}
exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportHDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportYARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
 
exportHBASE_HOME=/opt/hbase
exportZOOKEEPER_HOME=/opt/zookeeper
 
#eclipsehome
exportE_HOME=/opt/eclipse
 
#hive
export HIVE_HOME=/opt/hive
 
exportPATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$E_HOME:$HIVE_HOME/bin:
 


   将当前运行的HBase和Zookeeper的jar包复制到Hive目录lib下,比如hbase-0.94.14.jar、zookeeper-3.4.5.jar。删除原来版本的jar包,请一定保持hbase版本一致。

   将hadoop和hbase配置文件复制到hive目录下,比如core-site.xml,hdfs-site.xml,yarn-site.xml,hbase-site.xml等(有的配置文件可能没有什么用,也可以不用添加到hive的conf下)。

3 测试

假设要创建一个外部表hbasehive_table,实现查询HBase中的数据。测试过程可以按照下面的步骤:

3.1 HBase表的创建和初始化

在HBase shell命令下,执行下列脚本:

create'hivehbase', 'ratings'
put'hivehbase', 'row1', 'ratings:userid', 'user1'
put'hivehbase', 'row1', 'ratings:bookid', 'book1'
put'hivehbase', 'row1', 'ratings:rating', '1'
 
put'hivehbase', 'row2', 'ratings:userid', 'user2'
put'hivehbase', 'row2', 'ratings:bookid', 'book1'
put'hivehbase', 'row2', 'ratings:rating', '3'
 
put'hivehbase', 'row3', 'ratings:userid', 'user2'
put'hivehbase', 'row3', 'ratings:bookid', 'book2'
put'hivehbase', 'row3', 'ratings:rating', '3'
 
put'hivehbase', 'row4', 'ratings:userid', 'user2'
put'hivehbase', 'row4', 'ratings:bookid', 'book4'
put'hivehbase', 'row4', 'ratings:rating', '1'


 

3.2 创建Hive外部表

在Hive shell命令下,执行下列脚本:

$ CREATE EXTERNAL TABLE hbasehive_table
(key string, userid string,bookid string,ratingint)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" =":key,ratings:userid,ratings:bookid,ratings:rating")
TBLPROPERTIES("hbase.table.name" ="hivehbase");


 

   如果执行成功,并且没有出现任何的异常信息。执行Hive查询,出现下列结果就证明安装Hive成功。

hive>select * from hbasehive_table;    


OK
row1   user1   book1   1
row2   user2   book1   3
row3   user2   book2   3
row4   user2   book4   1
Time taken: 0.254 seconds, Fetched: 4 row(s)


 

相关内容