Zookeeper 集群搭建指的是ZooKeeper分布式模式安装。通常由 2n+1台 servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以 ZooKeeper 集群的数量一般为奇数。
1. 安装ZooKeeper集群要做一下准备:
- Zookeeper运行需要java环境,所以需要提前安装jdk。
- 检查集群时间是否同步
- 检测防火墙是否关闭
- 检测主机ip映射有没有配置
1.1 jdk的安装步骤如下:
1. 执行java –version ,查看系统是否自带jdk(非sun公司的),卸载自带的jdk,如下:
卸载openjdk
#查看jdk文件名
#卸载jdk及相关依赖
2. 执行mkdir –p /export/server, 新建server文件
3. 将jdk安装包存到/export/server路径下并解压
4.执行vi /etc/profile命令,进入profile文件配置环境变量,末尾加入
export JAVA_HOME=/export/server/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5. 执行source /etc/profile命令,重新加载环境变量文件
6.执行java –version命令,即可查看Java版本是否存在
1.2 检测集群时间是否同步:
(1)打开Secure的view------>Command (Chat) Window窗口,输入date回车。
(2)查看三个服务器时间是否一致。不一致可进行服务器时间同步设置
CentOS 时间与网络时间同步设置方法如下:
①安装ntpdate工具
[root@slave1 ~]#yum -y install ntp ntpdate
②设置系统时间与网络时间同步
[root@slave1 ~]# ntpdate 0.asia.pool.ntp.org
③将系统时间写入硬件时间。这里是为了防止系统重启后时间被还原,因此需要写到硬件设备中去。
[root@slave1 ~]# hwclock –systohc
1.3 检测防火墙是否关闭:
#查看防火墙是否关闭,如下有未关闭项
#关闭防火墙
#关闭防火墙
1.4 检测主机ip映射有没有配置:
执行vim /etc/hosts 命令,添加以下内容(三台的都需添加)
2. 对于安装leader+follower 模式的集群,大致过程如下:
(1)配置主机名称到 IP 地址映射配置
(2)下载解压zookeeeper的安装装包,配置zookeeeper环境变量(三台都需修改)
(3)修改 ZooKeeper 配置文件
(4)远程复制分发安装文件
(5)设置 myid
(6)启动 ZooKeeper 集群
如果要想使用Observer模式,可在对应节点的配置文件添加如下配置:
peerType=observer
其次,必须在配置文件指定哪些节点被指定为 Observer,如:
server.1:localhost:2181:3181:observer
服务器IP | 主机名 | myid的值 |
192.168.52.100 | node-1 | 1 |
192.168.52.110 | node-2 | 2 |
192.168.52.120 | node-3 | 3 |
具体步骤如下:
第一步:下载zookeeeper的压缩包,下载网址如下
http://archive.apache.org/dist/zookeeper/
我们在这个网址下载我们使用的zk版本为3.4.9.下载完成之后,上传到我们的linux的/export/server路径下准备进行安装
第二步:解压
解压zookeeper的压缩包到/export/server路径下去,然后准备进行安装
cd /export/server
tar -zxvf zookeeper-3.4.9.tar.gz
第三步:修改zookeeper环境变量(3台都需修改)
#编辑profile文件,末尾添加以下内容:
export ZOOKEEPER_HOME= /export/server/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile #zookeeper环境变量添加完,重载入profile文件
第四步:修改zookeeper配置文件
第一台机器修改配置文件
cd /export/server/zookeeper-3.4.9/conf/
#复制zoo_sample.cfg文件为zoo.cfg文件
#打开zoo.cfg,编辑修改以下内容:
dataDir=/export/data/zkdata
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=node-1:2888:3888
server.2=node-2:2888:3888
server.3=node-3:2888:3888
#新建zkdata文件夹,以后zk数据存放此处
第五步:添加myid配置
在第一台机器的
cd /export/data/zkdata这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /export/data/zkdata/myid
more myid
第六步:安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令
scp -r /export/server/zookeeper-3.4.9/ root@node-2:/export/server/
scp -r /export/server/zookeeper-3.4.9/ root@node-3:/export/server/
第二台机器上修改myid的值为2
echo 2 > /export/data/zkdata/myid
第三台机器上修改myid的值为3
echo 3 >/export/data/zkdata/myid
第七步:三台机器启动zookeeper服务
#这个命令三台机器都要执行
/export/server/zookeeper-3.4.9/bin/zkServer.sh start
#查看启动状态
/export/server/zookeeper-3.4.9/bin/zkServer.sh status