Zookeeper集群搭建实战

Zookeeper是一个是开源的分布式应用协调系统,是一个简单、快速、高性能的协调器。它在CAP模型中,选择了CP(一致性、分区容错性)。

0x00:实验环境

  • Centos 7主机三台
主机名 IP地址
Master 10.30.59.130
Slave1 10.30.59.131
Slave2 10.30.59.132

0x01:软件要求

软件名称 软件版本
JDK 8u77
Zookeeper 3.4.5
  • 软件约定:
    • 安装包在 /opt/soft
    • 安装目录在 /opt

0x02:先决条件

  • 主机网络互通
  • 各个主机已完成ssh免密登录

0x03:实验步骤

0x030:关闭防火墙与SELinux

  • 三台主机均需此操作
1
2
3
4
5
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master ~]# setenforce 0

0x031:解压zk与jdk

1
2
3
4
5
[root@master ~]# cd /opt 
[root@master opt]# tar -xzvf soft/zookeeper-3.4.5.tar.gz
[root@master opt]# tar -xzvf soft/jdk-8u77-linux-x64.tar.gz
[root@master opt]# mv zookeeper-3.4.5/ zookeeper
[root@master opt]# mv jdk1.8.0_77/ jdk

0x032:修改配置文件

1
2
[root@master opt]# cp zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cfg 
[root@master opt]# vi zookeeper/conf/zoo.cfg

更改并新增以下配置

1
2
3
4
5
6
7
8
dataDir=/opt/zookeeper/tmp
#更改临时文件路径

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
#配置集群节点信息

新建临时目录与写入Server ID

1
2
3
[root@master ~]# mkdir zookeeper/tmp
[root@master ~]# echo 1 >> zookeeper/tmp/myid
#将id写入myid文件内

此处注意:写入的id必须与主机对应

如: server.1为master

 则master节点上的myid文件内为1

 server.2为slave1

 则slave1节点上的myid文件内为2

即:

1
2
[root@slave1 ~]# echo 2 >> zookeeper/tmp/myid
[root@slave2 ~]# echo 3 >> zookeeper/tmp/myid

必须在scp同步之后输入

0x033:配置环境变量

1
2
3
4
5
6
7
[root@master ~]# vi /etc/profile.d/hadoop-etc.sh 
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin

export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

0x034:将文件同步其他节点并使环境变量立即生效

1
2
3
4
[root@master ~]# scp zookeeper slave1:/opt/ 
[root@master ~]# scp zookeeper slave2:/opt/
[root@master ~]# scp /etc/profile.d/hadoop-etc.sh slave1:/etc/profile.d/
[root@master ~]# scp /etc/profile.d/hadoop-etc.sh slave2:/etc/profile.d/
  • 三台主机均需此操作
1
[root@master ~]# source /etc/profile.d/hadoop-etc.sh 

0x035:启动zk集群

  • 三台主机均需此操作
1
[root@master ~]# zkServer.sh start

0x04:实验验证

  • 三台主机均可执行此操作
1
2
3
4
[root@master ~]# zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
1
2
3
4
[root@slave1 ~]# zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
1
2
3
4
[root@slave2 ~]# zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: leader

三个节点中,两个为follwer,一个为leader

即为实验成功