hadoop2.2.0集群基础上安装zookeeper3.4.5和hbase0.96(双机热备)

本文非详细指南,主要记录安装步骤及问题解决思路,重点在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

4、在/etc/profile文件中设置PATH
修改profile文件:
sudo vi /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
5、安装完毕
6、启动并测试zookeeper
6.1、在所有服务器中执行:zookeeper/bin/zkServer.sh start
6.2、输入jps命令查看进程:
namenode上显示为(本次为单机配置):
7724 DataNode
19769 HMaster
7485 NameNode
19361 QuorumPeerMain
7972 SecondaryNameNode
19988 HRegionServer

21691 Jps

其中,QuorumPeerMain是zookeeper进程,启动正常。(HMaster和HRegionServer为之后启动的hbase进程,其他为安装hadoop后启动的进程)
6.3、查看状态:zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower
6.4、启动客户端脚本:zookeeper/bin/zkCli.sh -server namenode:2181
WatchedEvent state:SyncConnected type:None path:null
[zk: zookeeper:2181(CONNECTED) 0]
[zk: zookeeper:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
       connect host:port
       get path [watch]
       ls path [watch]
       set path data [version]
       rmr path
       delquota [-n|-b] path
       quit
       printwatches on|off
       create [-s] [-e] path data acl
       stat path [watch]
       close
       ls2 path [watch]
       history
       listquota path
       setAcl path acl
       getAcl path
       sync path
       redo cmdno
       addauth scheme auth
       delete path [version]
       setquota -n|-b val path
[zk: zookeeper:2181(CONNECTED) 1] ls /
[hbase, zookeeper]
[zk: zookeeper:2181(CONNECTED) 2]

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等进行测试

如下顺利通过,则安装成功完成。


wKiom1MvjR_AHlDXAABg5ghZCIk131.jpg

你可能感兴趣的:(hadoop2.2.0集群基础上安装zookeeper3.4.5和hbase0.96(双机热备))