5.zookeeper安装与配置
下载zookeeper-3.4.2.tar.gz,这个软件包是hbase要求的版本号,为了避免莫名奇妙的错误,我尽量采用相关的版本号。特别说明一下,hive-0.9.0要求的zookeeper版本号是3.4.3,但是我使用的是3.4.2,不过也没有出错,也就没有管了。
终端中键入
tar xzvf zookeeper-3.4.2
安装完成后,打开zookeeper-3.4.2文件夹下的conf文件夹,里面有3个文件,将zoo-sample.cfg更名为zookeeper.cfg,内容不做任何改动。
6.hive安装与配置下载hive-0.9.0.tar.gz,原本想使用hive-0.8.1的,结果0.8.1版本需要的hbase版本为0.8.9,找了半天都没有找到,最后就选择了0.9.0版本。
在终端键入
tar xzvf hive-0.9.0.tar.gz,同前一样,不做更名处理。打开hive-0.9.0下的conf文件夹,做如下配置:
将conf中的hive-default.xml.sample以及hive.sh.sample改为hive-default.xml和hive-env.sh,并把hive-default.xml复制并重命名为hive-site.xml.
在hive-env.sh最后添加
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_33
export HIVE_HOME=/home/martin/hive-0.9.0
export PATH=$PATH:/home/martin/hive-0.9.0/bin
export Hadoop_HOME=/home/martin/hadoop-1.0.3
打开hive-site.xml,在最后添加
<property>
<name>hive.exec.scratchdir</name>
<value>/home/martin/hive-0.9.0/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/home/martin/hive-0.9.0/logs</value>
</property>
<property>
<name>hive.aux.jars.path</name>
<value>file:///home/martin/hive-0.9.0/lib/hive-hbase-handler-0.9.0.jar,file:///home/martin/hive-0.9.0/lib/hbase-0.92.0.jar,file:///home/martin/hive-0.9.0/lib/zookeeper-3.4.2.jar</value>
</property>
在终端键入
hive-0.9.0/bin/hive start
出现一下信息
martin@Ubuntu:~$ hive-0.9.0/bin/hive start
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/home/martin/hive-0.9.0/lib/hive-common-0.9.0.jar!/hive-log4j.properties
Hive history file=/home/martin/hive-0.9.0/logs/hive_job_log_martin_201208271000_1268040863.txt
hive>
键入show tables,可以查看hive中已有的数据表。
7.配置伪分布式删除hive-0.9.0/lib下原有的hbase-0.92.0.jar包,拷贝hbase-0.92.0下hbase-0.92.0.jar包到hadoop-1.0.3/lib和hive-0.9.0/lib下,将zoopeeker-3.4.2文件夹下的zookeeper-3.4.2拷贝到hive-0.9.0/lib和hbase-0.92.0/lib下,删除hbase-0.92.0/lib中原有的zookeeper-3.4.2.jar包和hive-0.9.0/lib下的zookeeper-3.4.3.jar包。并将hbase-0.92.0/conf/hbase-site.xml拷贝到hadoop-1.0.3/conf下。编辑/etc/hosts文件,将127.0.1.1所在行更改注释掉,另起一行,将刚刚注释的那行复制下来,去掉注释符,并将127.0.1.1修改为127.0.0.1,其他内容不用修改。
按照如下顺序启动集群相关服务
hadoop-1.0.3/bin/start-all.sh
hbase-0.92.0/bin/start-hbase.sh
hive-0.9.0/bin/hive start
此时用jps查看可以得到如下信息
4916 RunJar
3974 HMaster
9241 Jps
3050 JobTracker
2956 SecondaryNameNode
3402 TaskTracker
2222 NameNode
2593 DataNode
3893 HQuorumPeer
4310 HRegionServer
5370 Main
如果缺少某些服务,可能会使hive和hbase的整合不成功。注:启动hive后,不要急忙推出,否则可能看不到Runjar,Main服务。
启动hive服务后,输入
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");
如果没有报错,则hive和hbase的整合成功了。如果出现namenode in sage mode的提示,则使用
hadoop-1.0.3/bin/hadoop dfsadmin -safemode leave
关闭安全模式,再使用就可以了