您的位置:首页 > 其它

伪分布式环境下,Hive0.8.1与HBase0.92.0集成的配置说明

2012-03-08 10:17 399 查看
参见:"Hive0.8.1版本与HBase0.94.0集成的安装说明.doc" http://vdisk.weibo.com/s/31R7f
1 环境需求

1.1 Linux:推荐centos64位系统,当前最新版本是6.0。官方网站:www.centos.org

1.2 JDK:至少jdk6,推荐使用sunJDK最新jdk6版本。

网址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

1.3 Hadoop 1.0.0版本已配置好可以运行,下载地址:

网址: http://www.apache.org/dyn/closer.cgi/hadoop/common/

1.4 HBase0.92.0版本下载地址:http://www.apache.org/dyn/closer.cgi/hbase/,本文以hbase-0.92.0为例说明

1.5 Zookeeper版本下载地址:http://zookeeper.apache.org/releases.html,本文以zookeeper-3.3.3为例说明

1.6 Hive版本下载地址:http://hive.apache.org/releases.html,本文以hive-0.8.1为例说明

2 环境准备

2.1 系统配置、JDK和Hadoop\HBASE安装配置请参考《Hadoop 伪分布式环境配置说明》。

3 Hive安装配置

3.1 解压下载的Hive0.8.1版本

[hadoop@hadoop ~]$ tar xvf hive-0.8.1.tar.gz

[hadoop@hadoop ~]$mv hive-0.8.1/usr/local/hadoop/

3.2 配置环境变量

创建HBase符号链接(删除链接时,直接用rm命令 )

[hadoop@hadoop ~]$ ln -s/usr/local/hadoop/hive-0.87.1 hive

[hadoop@hadoop ~]$ sudo vi /etc/profile

在文件末尾加入以下内容:

export HADOOP_ROOT=/usr/local/hadoop //如果此行存在则不加入

export HIVE_HOME=$HADOOP_ROOT/hive

export PATH=$HIVE_HOME/bin:$PATH

执行下面命令可以使配置即时生效

[hadoop@hadoop ~]$ source /etc/profile

3.3 Mysql配置(可选)

因为hive存储metadata默认使用内置的DerbyDB,只支持单用户连接,所以通常推荐改为使用mysql存储metadata。

[hadoop@hadoop ~]$
mysql-u root –p

mysql> create user 'hive' identifiedby 'hive';

mysql>grant all privileges on *.* to 'hive'@'%' with grant option;

mysql> grant all privileges on *.* to 'hive'@'localhost' with grant option;

mysql> update mysql.user set password=password('hive') whereUser="hive" and Host="localhost";

mysql> flush privileges;

mysql> create database hive;

[hadoop@hadoop ~]$ mysql -h localhost -u hive –p

Hive用户登录成功即可。

下载jdbc driver,将jar拷贝至hive/lib内。本文使用了mysql-connector-java-5.1.18-bin.jar,下载连接:http://dev.mysql.com/downloads/connector/j/

修改hive-site.xml(如果不存在,请拷贝hive-default.xml)

修改内容如下:

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBCmetastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBCmetastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>hive</value>

<description>username to use against metastoredatabase</description>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>hive</value>

<description>password to use against metastoredatabase</description>

</property>

3.4 修改配置文件

需要修改的文件:

hive-site.xml(如果不存在,请拷贝hive-default.xml)

hive-env.sh

修改内容如下

Hive-site.xml

Hive的数据目录,可以使用hdfs

<property>

<name>hive.metastore.warehouse.dir</name>

<value>/user/local/hadoop/hivedata/warehouse</value>

<description>location of default database for thewarehouse</description>

</property>

Hive的临时文件目录。

<property>

<name>hive.exec.scratchdir</name>

<value>/tmp/hive-${user.name}</value>

<description>Scratch space for Hive jobs</description>

</property>

hive-env.sh

hive中需要设定hadoop目录。

# Set HADOOP_HOME to point to a specific hadoop installdirectory

HADOOP_HOME=$HADOOP_HOME

3.5 测试(确保HDFS和HBase已经启动)

[hadoop@hadoop ~]$ hive

hive> CREATE TABLE my(idINT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

OK

Time taken:5.127 seconds

hive> show tables;

OK

my

Time taken:0.247 seconds

hive> select name from my;

TotalMapReduce jobs = 1

LaunchingJob 1 out of 1

Number ofreduce tasks is set to 0 since there's no reduce operator

Starting Job = job_201112091045_0001, Tracking URL =http://hadoop:50030/jobdetails.jsp?jobid=job_201112091045_0001

Kill Command =/usr/local/hadoop/hadoop-0.20.205.0/libexec/../bin/hadoop job -Dmapred.job.tracker=hadoop:9001 -killjob_201112091045_0001

2011-12-0916:37:06,285 Stage-1 map = 0%, reduce =0%

2011-12-0916:37:12,369 Stage-1 map = 100%, reduce= 0%

2011-12-0916:37:18,418 Stage-1 map = 100%, reduce= 100%

Ended Job =job_201112091045_0001

OK

Time taken: 27.249 seconds

至此hive安装配置完成

5 下载并编译HIVE源码
参考阅读:https://cwiki.apache.org/confluence/display/Hive/HowToContribute
5.1 获取hive源码

进入预定的目录,比如/usr/local/hadoop/hive-trunk,执行如下命令
svn checkout http://svn.apache.org/repos/asf/hive/trunk hive-trunk

修改IVY目录下的libraries.properties文件
hbase.version=0.92.0

hbase-test.version=0.92.0

5.2 检查hive-trunk目录下应该有build.xml,执行如下命令

[hadoop@hadoop ~]$ ant clean package

当显示Build successfule时,表示编译成功。

编译好的Jar包在/hive-trunk/build/dist/lib目录下

6 更新HIVE与Hbase集成需要的Jar包

6.1 将hive-trunk/build/dist/lib目录的下面几个Jar包,拷贝到Hive-0.8.1对应的lib目录下

可从新浪微盘获取 "hive_hbase_092.rar" http://vdisk.weibo.com/s/31ReU


6.2 删除原有的hbase 和hive-hbase-handler包,如下



7 启动并测试Hive(确保HDFS和HBASE已正常启动)

7.1 带参数启动Hive(注意不要人为换行),注意jar包名称和路径的正确性(注意中划线--的使用)

$HIVE_HOME/bin/hive --auxpath $HIVE_HOME/lib/hive-hbase-handler-0.9.0-SNAPSHOT.jar,$HIVE_HOME/lib/hbase-0.92.0.jar, $HIVE_HOME/lib/zookeeper-3.3.1.jar -hiveconf hbase.master=localhost:60000

7.2 创建hbase_table_1表,指明存放在HBase中

CREATE TABLE hbase_table_1(key int,value string)

STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,cf1:val")

TBLPROPERTIES("hbase.table.name" = "xyz");

创建成功后,在HBase中应该能看到xyz表



7.3 在Hive中创建表pokes表,并从example目录中加载数据

hive>  CREATE TABLE pokes (foo INT, bar STRING);

hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;


7.4 将Pokes表中的数据导入到hbase_table_1表中




执行后检查



8 附录1:ANT安装配置

参考阅读:

http://ant.apache.org/manual/install.html

9 附录2:SVN安装配置

使用root身份,或者sudo方式执行:

yum install -ysubversion

参考阅读:http://hi.baidu.com/bsdgo/blog/item/cc144fd62ca094dc50da4bae.html

CentOS安装TortoiseSVN svn 客户端

10 参考文献:

https://cwiki.apache.org/confluence/display/Hive/HowToContribute

https://cwiki.apache.org/confluence/display/Hive/GettingStarted+EclipseSetup

CentOS安装TortoiseSVN svn 客户端

http://hi.baidu.com/bsdgo/blog/item/cc144fd62ca094dc50da4bae.html

linux centos 安装eclipse

http://hi.baidu.com/yuzhi2217/blog/item/eb7f2ff4157ada70dcc47455.html

Installing Apache Ant

http://ant.apache.org/manual/install.html#librarydependencies

http://i-proving.ca/space/Technologies/Ant+Tutorial

官方关于Hive和HBASE集成的文档描述

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

$HIVE_SRC/build/dist/bin/hive

ApacheDownload Mirrors

http://www.apache.org/dyn/closer.cgi/hadoop/common/

Hive的官方起步文档

https://cwiki.apache.org/confluence/display/Hive/GettingStarted
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: