Hive与HBase集成
jopen
11年前
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)