Hive与HBase集成

2022-06-29 21:36:21 浏览数 (1)

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)

0 人点赞