Zookeeper集群搭建

Zookeeper集群搭建

准备阶段

  • 检查集群时间是否同步,时间同步参考
  • 检测防火墙是否关闭

    1
    2
    3
    4
    5
    查看防火墙状态
    service iptables status
    设置防火墙永久关闭
    chkconfig iptables off
    chkconfig iptables --list
  • 检测主机IP映射有没有配置

  • 检查JDK是否安装:java -version

下载安装zookeeper

使用FTP工具导入安装包到集群

1
2
tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 zookeeper

修改环境变量(注意:3台zookeeper都需要修改)

1
2
3
4
vi /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile

修改Zookeeper配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加内容:
dataDir=/root/apps/zookeeper/zkdata
server.1=mini1:2888:3888 ## (心跳端口、选举端口)
server.2=mini2:2888:3888
server.3=mini3:2888:3888
创建文件夹:
cd /home/hadoop/zookeeper/
mkdir zkdata
在data文件夹下新建myid文件,myid的文件内容为:
cd zkdata
echo 1 > myid

分发安装包到其他机器

1
2
scp -r /root/apps root@mini2:/root/
scp -r /root/apps root@mini3:/root/

修改其他机器的配置文件

1
2
3
修改myid文件
到mini2上:修改myid为:2
到mini3上:修改myid为:3

启动(每台机器)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
zkServer.sh start
或者编写一个脚本来批量启动所有机器:
#!/bin/bash
usage="Usage: $0 (start|stop|status)"
if [ $# -lt 1 ]; then
echo $usage
exit 1
fi

behave=$1

echo "$behave zkServer cluster"

for host in 1 2 3
do
ssh node-$host "source /etc/profile;/hadoop/apps/server/zookeeper/bin/zkServer.sh $behave"
sleep 2s
done
exit 0

查看集群状态

1
2
jps(查看进程)
zkServer.sh status(查看集群状态,主从信息)

如果启动不成功,可以观察zookeeper.out日志,查看错误信息进行排查