Zookeeper分布式模式安装使用(3.4.6) 2015-02-14 07:30

创建用户

为提高安全性,为zookeeper创建独立的OS用户,使用该用户来启动服务。

groupadd zookeeper
useradd -g zookeeper zookeeper
passwd zookeeper

分布式模式安装

  • 准备

假设有三台机器,hostname和ip对应关系是:

192.168.1.11 data01   
192.168.1.12 data02   
192.168.1.13 data03

ZooKeeper不存在明显的master/slave关系,各个节点都是服务器.leader挂了,会立马从follower中选举一个出来作为leader.
由于没有主从关系,也不用配置SSH无密码登录了,各个zk服务器是自己启动的,互相之间通过TCP端口来交换数据。

  • 下载、安装

将Zookeeper解压到/opt/zookeeper目录,将该目录的属主设置为zookeeper用户。

cd /opt
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
chown -R zookeeper:zookeeper zookeeper
  • 配置文件conf/zoo.cfg

创建配置文件:

su - zookeeper
cd /opt/zookeeper/conf
mv zoo_sample.cfg zoo.cfg

更改配置文件:

用户的数据,放在local/data下面,所以我的dataDir是/opt/zookeeper/local/data.

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/local/data
clientPort=2181
server.1=data01:2888:3888
server.2=data02:2888:3888
server.3=data03:2888:3888
  • myid文件

要在每台机器的dataDir下,新建一个myid文件,里面存放一个数字,用来标识当前主机。

zookeeper@data01:$ mkdir -p /opt/zookeeper/local/data
zookeeper@data02:$ mkdir -p /opt/zookeeper/local/data
zookeeper@data03:$ mkdir -p /opt/zookeeper/local/data
zookeeper@data01:$ echo "1" >> /opt/zookeeper/local/data/myid
zookeeper@data02:$ echo "2" >> /opt/zookeeper/local/data/myid
zookeeper@data03:$ echo "3" >> /opt/zookeeper/local/data/myid
  • 启动每一台机器

在每一台机器上依次启动zookeeper.
谁先启动,谁成为Master.
因为3个节点的启动是有顺序的,所以在陆续启动三个节点的时候,前面先启动的节点连接未启动的节点的时候会报出一些错误。可以忽略。

zookeeper@data01:$ /opt/zookeeper/bin/zkServer.sh start
zookeeper@data02:$ /opt/zookeeper/bin/zkServer.sh start
zookeeper@data03:$ /opt/zookeeper/bin/zkServer.sh start
  • 查看状态

在各节点上通过如下命令查看状态:

/opt/zookeeper/bin/zkServer.sh status

使用java客户端连接ZooKeeper集群

找一台机器,解压zookeeper压缩包,不用配置,就可以使用java客户端连接ZooKeeper集群中的任意一台服务器了。

$ /opt/zookeeper/bin/zkCli.sh -server data01:2181
$ /opt/zookeeper/bin/zkCli.sh -server data02:2181
$ /opt/zookeeper/bin/zkCli.sh -server data03:2181

连接上以后,就可以执行各种命令,使用help查看帮助。

Tags: #Zookeeper    Post on Hadoop