1 前提条件
系统安装了Java6
2 Zookeeper的下载
官网地址:http://zookeeper.apache.org/releases.html
下载地址:http://apachemirror.ovidiudan.com/zookeeper/
下载版本:zookeeper-3.4.6.tar.gz
3 独立模式运行zookpeer
(一) 将安装包zookeeper-3.4.6.tar.gz拷贝到ubuntu上
(二) 将安装包解压到指定的目录中
在/usr/local/下新建文件夹zookeeper并且将zookeeper的安装包拷贝到该文件下解压
(三) 将zookeeper的可执行文件添加到命令行目录
(四) 创建zookeeper的配置文件
在/usr/local/zookpeer/zookeeper-3.4.6/conf下新建一个文件zoo.cfg
并且设置其内容如下:
注意大小写
(五) 启动zookeeper
(六) 测试
使用命令:echo ruok |nc localhost 2181
使用telnet测试:
(七) 链接zookpeer
zkCli.sh -server 127.0.0.1:2181
查看可执行的命令:
4 复制模式运行zookpeer
(一) 分别在master、slave1、slave2在/usr/local/zookeeper/zookeeper-3.4.6文件下建立data目录用来存储zookeeper的数据
(二) 在data目录中建立myid文件
在master的myid文件中输入1
在slave1的myid文件中输入2
在slave2的myid文件中输入3
在myid中写入1
类似的slave1,slave2中分别写入2,3
(三) 配置master节点/usr/local/zookpeer/zookeeper-3.4.6/conf目录下zoo.cfg修改为如下内容:
(四) 将master节点上的zookeeper目录和配置Zookeeper的环境变量文件(/etc/profile),使用scp命令复制到slave1和slave2节点上
将master上的zookeeper和/etc/profile复制到slave1上
将master上的zookeeper和/etc/profile目录复制到slave2上
重新启动slave1和slave2使配置生效
(五) 在master,slave1,slave2上分别启动zookeeper
zkServer.sh start
(六) 分别查看master,slave1,slave2上的zookeeper的状态
zkServer.sh status
master上的:
slave1上的:
slave2上的:
从图中可以看出当前slave2为zookeeper集群的领导者,当slave2宕掉后,zookeeper就会从zookeeper集群中重新选举出leader.
5 复制模式启动常见问题
(一) Causedby: java.lang.IllegalArgumentException: /tmp/zookeeper/myid file is missing
需要在zoo.cfg中建立myid文件,并且在其中写上代表zookeeper集群的唯一id编号.