ZooKeeper是Apache提供的,分布式服务协调系统,应用比较广泛。
因为项目中使用Kafka MQ,而Kafka完全使用ZooKeeper实现Kafka各组件的服务协调,包括Broker、Consumer等。
文档中的Linux命令,以#开始的为root用户的操作,以$开始的为zk用户的操作。
# groupadd zk
# useradd -g zk zk
# passwd zk
# mkdir -p /data/zookeeper
# chown -R zk:zk/data/zookeeper
$ mkdir/data/zookeeper/data
# cd /usr/local/src
# tar -zxvfzookeeper-3.4.6.tar.gz -C /usr/local/
# chown -R zk:zk /usr/local/zookeeper-3.4.6$ cd/usr/local/zookeeper-3.4.6/conf
$ cp zoo_sample.cfg zoo.cfg
$ vi zoo.cgf
修改配置见下图,包括dataDir, dataLogDir及三个ZooKeeper的服务器列表。
$ vi log4j.properties
修改zookeeper.log.dir,配置见下图,
在ZooKeeper的data目录中创建名称为myid文件,内容为ServerId编号,如上配置文件中,三台的ZooKeeper的myid内容分布为1, 2, 3。
$ cd /data/zookeeper/data
$ cat > myid
输入1,按Enter键,再按Ctrl+d结束。在文件中增加红框部分:
重复以上步骤,安装ZooKeeper到另外2台,构建一个三台的ZooKeeper集群。
集群中的所有ZooKeeper都可以通过下面的命令启动:
正常情况下显示:
JMX enabled by default
Using config:/usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
通过下面的命令查看ZooKeeper是否启动成功:如果启动成功,则在Leader的机器上显示:
在Follower的机器上显示:
$ zkServer.sh stop
原文地址:http://blog.csdn.net/wilbertzhou/article/details/38067627