linux上搭建zookeeper集群
1.下载zookeeper
官网地址:http://zppkeeper.apache.org/releases.html
2.下载好后解压,把zookeeper文件复制三份
3.配置文件修改
分别把zookeeper1、zookeeper2、zookeeper3下的conf目录zoo_sample.cfg文件复制为zoo.cfg
分别修改三个zookeeper的zoo.cfg文件,主要是红色部分。
vi zoo.cfg
其他配置详解:
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/*编号1的zookeeper,*/
server.2=192.168.206.150:2882:3882/*编号2的zookeeper*/
server.3=192.168.206.150:2883:3883/*编号3的zookeeper*/
最后三个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.X中X的值
vi myid //添加1
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,则为主机。
若出现Mode: follower,则为从机。