最近学习zookeeper, 顺便把zookeeper的一些知识整理一下. 先介绍zookeeper的安装验证.
学习环境 CentOS Linux 64 , JDK 1.7 , zookeeper-3.4.6
参考: http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
http://zookeeper.apache.org/doc/r3.4.6/zookeeperAdmin.html#sc_maintenance
A; 准备工作
安装zookeeper 之前需要先安装JDK 1.6或者以上版本. JDK的安装不相信说明.
安装完JDK之后需要设置JAVA_HOME环境变量, 在此也不在详细说明
B: 安装zookeeper
1: 从 zookeeper的官方网站上下载 zookeeper-3.4.6.tar.gz 解压缩
tar -xzvf zookeeper-3.4.6.tar.gz
2: zookeeper 单独模式
进入到 zookeeper-3.4.6/conf 目录
创建默认的zookeeper配置文件 cp zoo_sample.cfg zoo.cfg
注释掉所有的配置项,只保留 tickTime, dataDir, clientPort
tickTime=2000
dataDir=/tmp/zookeeper/data
clientPort=2181
说明:
tickTime: zookeeper 的基本计时单位. 毫秒级. 2000ms为2秒
dataDir: zookeeper 的数据目录,可以根据自己的项目更改
clientPort: zookeeper 监听客户端接入的端口
3: 启动 并验证
启动: 到zookeeper-3.4.6目录下, 运行
bin/zkServer.sh start
验证: 使用客户端连接到服务端
bin/zkCli.sh -server 127.0.0.1:2181
C: 集群式配置
在集群模式下,我们需要配置集群中所有的服务器, 以及服务器之间的一些通信参数.
1: 我们需要 修改zookeeper-3.4.6/conf/zoo.cfg 文件, 最小参数列表
tickTime=2000
dataDir=/tmp/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
说明:
initLimit: 各个server之间建立连接的timeout时间. 这里5 表示 5*tickTime=10秒. tickTime: 是zookeeper的计时的基本单位.
syncLimit: 各个server之间连接建立之后的心跳timeout时间.
server.1=zoo1:2888:3888 : server 保留字, 1 表示server的序号. zoo1: server1的ip地址或者名称。
2888: 表示服务器之间的通信端口. 3888: 服务器之间的选举端口. 通过选举端口,选择出leader服务器.
2: 创建 myid 文件
在 dataDir 目录下创建myid文件。 里边只有一个数字. 例如 1 表示这是server.1的服务器. server.1的ip要和myid中声明的相匹配的.
3: 启动验证
同上面的验证.