CentOS 7 Zookeeper集群化安装 和选举过程

一、环境配置

  • JDK1.8+
  • Zookeeper 3.6.1
  • 机器配置 Ubutu 16
    IP 编号
    192.168.59.131 1
    192.168.59.132 2
    192.168.59.134 4

二、集群安装

2.1 配置服务器编号

2.1.1 /opt/software/zookeeper-3.6.1-bin/这个目录下创建 zkData

zerah@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin$ ll
总用量 52
drwxr-xr-x 7 root  root   4096 7月  16 17:44 ./
drwxr-xr-x 3 root  root   4096 7月  16 15:52 ../
drwxr-xr-x 2 zerah zerah  4096 4月  21 22:59 bin/
drwxr-xr-x 2 zerah zerah  4096 4月  21 22:59 conf/
drwxr-xr-x 5 zerah zerah  4096 4月  21 23:00 docs/
drwxr-xr-x 2 root  root   4096 7月  16 15:52 lib/
-rw-r--r-- 1 zerah zerah 11358 4月  21 22:59 LICENSE.txt
-rw-r--r-- 1 zerah zerah   432 4月  21 22:59 NOTICE.txt
-rw-r--r-- 1 zerah zerah  1963 4月  21 22:59 README.md
-rw-r--r-- 1 zerah zerah  3166 4月  21 22:59 README_packaging.md
drwxr-xr-x 2 root  root   4096 7月  16 17:46 zkData/

2.1.2 在 /opt/software/zookeeper-3.6.1-bin/zkData目录下创建一个 myid的文件

zerah@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/zkData$ touch myid

添加myid文件,注意一定要在 linux里面创建,在 notepad++里面很可能乱码

2.1.3编辑 myid文件

[atguigu@hadoop102 zkData vi myid
在文件中添加与 server对应的编号:
1

其他节点针对IP做相应得配置

2.1.4 分别修改每个机器的zk数据存储路径

root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/conf# vi zoo.cfg


dataDir=/opt/software/apache-zookeeper-3.6.1-bin/zkData

2.1.5 zoo.cfg集群配置

增加如下配置(若地址配置为主机名,需要配置host)
#######################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

demo

######################################Cluster##############################
server.1=192.168.59.131:2888:3888
server.2=192.168.59.132:2888:3888
server.4=192.168.59.134:2888:3888

2.1.6 配置参数解读

server.A=B:C:D

  • A是一个数字,表示这个是第几号服务器;集群模式下配置一个文件 myid 这个文件在 dataDir目录 下,这个文件里面有一个数据就是 A的值,Zookeeper启动时读取此文件,拿到里面 的 数据与 zoo.cfg里面 的配置信息比
    较从而判断到底是哪个 server。
  • B是这个服务器的地址;
  • C是这个服务器 Follower与集群中的 Leader服务器交换信息的端口;
  • D是 万一集群中的 Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的
    Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

3.集群操作 || 选举机制

3.1.1分别启动zk server

### 启动
root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh start
### 状态查看
root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh status
### 停止
root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh stop

如果只启动一台zk server,查看状态会出错,因为集群有三台服务器,只启动一台没达到半数以上,因此无法保证集群可靠性:

root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/software/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

启动第二台,第二台为leader:

root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/software/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

启动第三台,第三台是flower

root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin#  ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/software/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

停掉第二台,第三台是Leader

root@zerah-virtual-machine:/opt/software/apache-zookeeper-3.6.1-bin/bin# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/software/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

你可能感兴趣的:(项目环境,zookeeper,java)