Hive与HBase集成

jopen 10年前

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: 

</div> </div>

   将当前运行的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命令下,执行下列脚本:

 
</div>
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");  
</div> </div>

  

   如果执行成功,并且没有出现任何的异常信息。执行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)  
</div> </div>