下载
官网下载地址是https://www.apache.org/dyn/closer.cgi/zookeeper,下载apache-zookeeper-3.5.6-bin.tar.gz。
standalone mode
独立模式,一个服务器。服务器包含在一个JAR文件中,因此安装过程就是创建一个配置文件。
1.解压apache-zookeeper-3.5.6-bin.tar.gz到/opt目录。
2.创建/data/apache-zookeeper-3.5.6-bin目录。
3.cp /opt/apache-zookeeper-3.5.6-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.5.6-bin/conf/zoo.cfg。
4.修改/opt/apache-zookeeper-3.5.6-bin/conf/zoo.cfg,设置dataDir=/data/apache-zookeeper-3.5.6-bin。clientPort是zookeeper监听客户端连接的端口。
5.日志文件默认为/opt/apache-zookeeper-3.5.6-bin/logs/zookeeper-$USER-server-$HOSTNAME.out,$USER和$HOSTNAME是变量。
6.启动命令是/opt/apache-zookeeper-3.5.6-bin/bin/zkServer.sh start,默认读取../conf/zoo.cfg配置文件,或者也可以在该命令后附上配置文件路径。zkServer.sh stop和status用于停止可以查看状态。
7.执行/opt/apache-zookeeper-3.5.6-bin/bin/zkCli.sh -server 127.0.0.1:2181可以连接到刚刚启动的ZooKeeper服务, -server 127.0.0.1:2181是默认的,可以省略。
从3.5.0版本开始,zookeeper提供了一个管理服务AdminServer。AdminServer是一个提供了HTTP接口的内嵌Jetty服务,默认端口是8080,默认URL是/commands/[command name],例如http://localhost:8080/commands/stat。接口响应的是JSON格式的数据。AdminServer默认开启,通过移除classpath下的Jetty包或者配置admin.enableServer为false可以关闭AdminServer。其他相关配置如下。
admin.serverAddress:监听地址,默认0.0.0.0。
admin.serverPort:监听端口,默认8080。
admin.idleTimeout:连接最大的等待发送或接收数据的时间,单位是毫秒,默认30000。
admin.commandURL:用于列出命令的URL,相对于根URL,默认/commands。
replicated mode
复制模式,一组服务器。在独立模式下运行ZooKeeper方便了评估、开发和测试。但是在生产中,应该以复制模式运行ZooKeeper。以下为单机器下安装示例。
1.复制/opt/apache-zookeeper-3.5.6-bin三次,分别是/opt/apache-zookeeper-3.5.6-bin-1,/opt/apache-zookeeper-3.5.6-bin-2,/opt/apache-zookeeper-3.5.6-bin-3。
2.创建/data/apache-zookeeper-3.5.6-bin-1,/data/apache-zookeeper-3.5.6-bin-2,/data/apache-zookeeper-3.5.6-bin-3目录。
3.复制三个目录中的/conf/zoo_sample.cfg为/conf/zoo.cfg,并修改/conf/zoo.cfg:
设置dataDir=/data/apache-zookeeper-3.5.6-bin-1,dataDir=/data/apache-zookeeper-3.5.6-bin-2,dataDir=/data/apache-zookeeper-3.5.6-bin-3。
设置clientPort=3181,clientPort=3182,clientPort=3183。
在文件最后加上
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445。
4.分别执行
echo 1 > /data/apache-zookeeper-3.5.6-bin-1/myid
echo 2 > /data/apache-zookeeper-3.5.6-bin-2/myid
echo 3 > /data/apache-zookeeper-3.5.6-bin-3/myid
5.每一个server.x项指定了id为x的ZooKeeper服务器使用的地址和端口号。每个server.x项通过冒号分隔为三部分,第一部分为服务器x的IP地址或主机名(hostname),第二部分和第三部分为TCP端口号,分别
用于节点通信和选举。启动时,通过读取dataDir配置下的myid文件获取服务器id,根据该id找到server.x对应的项进行监听。
6.分别执行/opt/apache-zookeeper-3.5.6-bin-1/bin/zkServer.sh start,/opt/apache-zookeeper-3.5.6-bin-2/bin/zkServer.sh start,/opt/apache-zookeeper-3.5.6-bin-3/bin/zkServer.sh start。启动的服务器数量要达到法定人数才可正常运行。
7.执行/opt/apache-zookeeper-3.5.6-bin/bin/zkCli.sh -server 127.0.0.1:3181,127.0.0.1:3182,127.0.0.1:3183可以连接到刚刚启动的ZooKeeper服务。