Zookeeper 集群安装 配置详解 注意事项

Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

一、准备工作

1、永久关闭防火墙

1
sudo chkconfig --level 35 iptables off

2、修改主机名(需要重启)

1
2
3
4
5
6
7
8
9
10
11
12
sudo vim /etc/sysconfig/network

HOSTNAME=localhost.localdomain 修改 localhost 为 maste

修改 host :sudo vim /etc/hosts

127.0.0.1 localhost slave1.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.131 master
192.168.246.132 slave1
192.168.246.133 slave2

二、下载安装 zookeeper

1、下载 stable 版本

1
wget http://apache.dataguru.cn/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

如果没速度可以从此处选择合适的镜像站进行下载 :http://www.apache.org/dyn/closer.cgi/zookeeper/

2、解压

1
tar -zxvf zookeeper-3.4.6.tar.gz

3、设置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo vim /etc/profile 在末尾添加

#set zookeeper environment
export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

#set java environment
JAVA_HOME=/home/hadoop/jdk1.8.0_20
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH


同步到其他服务器
sudo scp /etc/profile slave1:/etc/profile
sudo scp /etc/profile slave2:/etc/profil

4.、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg 修改为

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/zookeeper-3.4.6/data
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
#192.168.246.133 对应 slave2


同步到其他服务器
sudo scp -r /home/hadoop/zookeeper-3.4.6/ slave1:/home/hadoop/zookeeper-3.4.6/
sudo scp -r /home/hadoop/zookeeper-3.4.6/ slave2:/home/hadoop/zookeeper-3.4.6/

5、创建 myid

在dataDir指定目录下操作,本文是 /home/hadoop/zookeeper-3.4.6/data
vim myid 三台服务器分别填写 1,2,3 即可,对应主机名称,即 server.1=master:2888:3888

三、启动 zookeeper 集群

1、启动

三台服务器分别执行 zookeeper-3.4.6/bin/zkServer.sh start

2、检查状态

1
zookeeper-3.4.6/bin/zkServer.sh status

zookeeper 启动成功

1
jps # (来自 java/bin 的命令,查看进程)

其中QuorumPeerMain是zookeeper进程,启动正常

3、关闭 zookeeper

1
zookeeper-3.4.6/bin/zkServer.sh stop