本文非详细指南,主要记录安装步骤及问题解决思路,重点在hadoop2.2.0集群已建立的基础上部署hbase0.96和zookeeper3.4.5
一、安装zookeeper3.4.5
1、解压
这里有5个zookeeper的节点,安装路径都为: /home/hadoop/zookeeper
2、配置zoo.cfg
5个节点的zoo.cfg配置相同,如下
[hadoop@master1conf]$ vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/zkdata
clientPort=2181
server.1=namenode1:2888:3888
server.2=namestandby:2888:3888
server.3=datanode1:2888:3888
server.4=datanode2:2888:3888
server.5=datanode3:2888:3888
2、Zookeeper Log4j日记输出修改
不习惯zookeeper的log日志输出到当前zookeeper.out的文件,这是一个控制台的重定向文件,想着让zk的操作日志输出到标准的log4j文件。
首先修改了:
conf/log4j.properties:
# Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE
改成
# Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO,ROLLINGFILE
但是这样启动的时候,还是输出到zookeeper.out文件中。还要修改bin/zkEvn.sh文件,
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,CONSOLE"
fi
改成
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
这样再启动zkSever.sh start的时候 就会生成log4j.properties配置的中设定的zookeeper.log文件。
3、在5台zookeeper节点的 dataDir(即/home/hadoop/zkdata)下分别建立相应的myid文件,展示master1的细节如下:
[hadoop@master1zkdata]$ pwd
/home/hadoop/zkdata
[hadoop@master1zkdata]$ ls
myid
[hadoop@master1zkdata]$ cat myid
1
其他节点分别是 2 3 4 5 。
21691 Jps
6.5、停止zookeeper进程:zookeeper/bin/zkServer.sh stop
二、hadoop2.2.0下载、解压、配置(请参阅hadoop2.2.0安装配置及HA配置)
三、hbase0.96的安装
1、下载解压
2、本文案例部署了namenode(1台Hmaster)、datanode1、datanode2、datanode3(3台HRegionServer),安装路径如下:
/home/hadoop/hbase
3、参数配置
因为要使用已存在的zookeeper实例,需要修改$HBASE_HOME/conf/hbase-env.sh中的一个参数,如下所示:
# Tell HBase whetherit should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
修改hbase-site.xml,在本文案例中,其内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
</property>
(此处重要,“hdfs://namenode:9000”这个url要与hadoop中hdfs-site.xml中的对应配置保持一致,而“/hbase”是hbase在hdfs上数据存放的根路径,可自定义)
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>namenode,namenodestandby,datanode1,datanode2,datanode3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zkdata</value>
</property>
修改regionservers ,在本文案例中,其内容如下:
datanode1
datanode2
datanode3
4、lib目录下jar包的替换
hbase0.96安装包的lib目录下所用的hadoop相关jar包都是hadoop2.1.0 beta版的。
而这部分jar包跟hadoop2.2.0之间不能完全兼容,所以需要将hbase0.96的lib目录中的hadoop相关jar包替换成hadoop2.2.0版的jar包。
5、将hadoop的配置文件(最少需要hdfs-site.xml)copy到hbase0.96的conf目录下
6、启动hbase
$HBASE_HOME/bin/start-hbase.sh
在各节点上用jps看一下是否启动成功
打开web客户端 查看相关信息:
(Hmaster)http://namenode:60010
(RegionServer)http://datanode1:60030
启动shell 连接, $HBASE_HOME/bin/hbase shell
执行几个基本操作,如list,status,create,put,get等进行测试
如下顺利通过,则安装成功完成。