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)
HBase 的详细介绍:请点这里
HBase 的下载地址:请点这里
相关阅读: