linux上搭建zookeeper集群

1.下载zookeeper

        官网地址:http://zppkeeper.apache.org/releases.html

2.下载好后解压,把zookeeper文件复制三份

linux上搭建zookeeper集群

3.配置文件修改

       分别把zookeeper1、zookeeper2、zookeeper3下的conf目录zoo_sample.cfg文件复制为zoo.cfg

    分别修改三个zookeeper的zoo.cfg文件,主要是红色部分。

    vi zoo.cfg

linux上搭建zookeeper集群


其他配置详解:

initLimit=10  /*Follower连接loader初始化时间,超时则退出同步数据过程,重新选举*/

syncLimit=5   /* Follower连接loader心跳时间,超时则认为Follower不在线*/

tickTime=2000 /*执行时间间隔(不需要修改)*/

dataDir=/zk/zookeeper/data /*数据存储目录(根据当前路径进行修改)*/

clientPort=2181  /*默认client为2181端口,如果是伪集群,不同zk请改不同端口,这里修改为4181,4182,4183三个端口,在其它应用中都需要使用此端口*/

server.1=192.168.206.150:2881:3881/*编号1zookeeper,*/

server.2=192.168.206.150:2882:3882/*编号2zookeeper*/

server.3=192.168.206.150:2883:3883/*编号3zookeeper*/

最后三个server端口解析:

        第一个端口2888是指follower服务器和leader服务器的通信端口,第二个端口3888指的是选举leader服务器时互相通信的端口。

3.设置myid

          集群需要通过标志来区分每个节点,zookeeper通过在dataDir目录设置标志进行区分,分别在每个zookeeper实例中创建data文件夹,以zookeeper1为例,其他类同。

    cd zookeeper1    //切换到zk1

    mkdir data          //创建data文件夹

    touch myid         //创建myid文件,内容为一个数字用来标识当前主机,zoo.cfg文件中配置的server.XX的值

    vi myid               //添加1

linux上搭建zookeeper集群


即(因为伪集群,所以相同,但是client端口不同也可以,即上面所说的4181、4182、4183对应3个zk实例)

192.168.206.150为server.1则myid的值为1

192.168.206.150为server.2则myid的值为2

192.168.206.150为server.3则myid的值为3

4.集群启动

    分别到bin目录下执行脚本 ./zkServer.sh start 启动zookeeper1、zookeeper2、zookeeper3。

   

执行命令之后会出现以下界面,但不能说明启动成功,需使用命令netstat -anp|grep 4181,检查一下是否有进程,如果没有则未启动成功,若启动失败,通常会生成 zookeeper.out 日志文件在zk根目录文件夹内,可通过此日志查找错误。

[[email protected] bin]$ ./zkServer.sh start

JMX enabled by default

Using config: /zk/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

 

下图代表zookeeper启动成功

[[email protected] bin]$ netstat -apn|grep 4181

(Not all processes could be identified,non-owned process info

 willnot be shown, you would have to be root to see it all.)

tcp       0      0 :::4181          :::*           LISTEN      10331/java

 
zk常用命令:

    ./zkServer.sh restart  (重启)

    ./zkServer.sh status  (查看状态,或者角色)

    ./zkServer.sh stop     (关闭或者netstat -anp|grep zk启动端口,然后kill -9 PID

    ./zkServer.sh start-foreground  (以打印日志方式启动)

5.查看zk集群启动角色

   ./zkServer.sh status

   出现Mode: leader,则为主机。

linux上搭建zookeeper集群

   若出现Mode: follower,则为从机。

linux上搭建zookeeper集群