三台linux服务器:zookeeper3.4.6。
提示:xshell -查看-撰写栏-左下角命令行(所有会话)
1.解压文件到/usr/local,修改文件夹为zookeeper
[zzg@zzg home]$ sudo tar zxvf ./zookeeper-3.4.6.tar.gz -C /usr/local
[zzg@zzg home]$ mv /usr/local/zookeeper-3.4.6/ zookeeper
2.配置环境变量
[root@zzg home]# vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=${JAVA_HOME}/bin/:${ZOOKEEPER_HOME}/bin:$PATH
3.刷新一下
[root@zzg ~]# source /etc/profile
4.修改配置文件
[root@zzg ~]# cd /usr/local/zookeeper/bin
[root@zzg conf]# cp zoo_sample.cfg zoo.cfg
[root@zzg conf]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
#最后添加集群的配置#
server.0=192.168.112.129:2888:3888
server.1=192.168.112.130:2888:3888
server.2=192.168.112.131:2888:3888
5.创建配置中所需要的文件夹
[root@zzg conf]# cd /usr/local/zookeeper/
[root@zzg zookeeper]# mkdir data
然后再每个data文件夹下面创建myid
[root@zzg zookeeper]# cd data
[root@zzg data]# vim myid
#里面就写一个数字,对应配置文件zoo.cfg中的server.0,server点后面的数字#
#所以第一台linux中的/usr/local/zookeeper/data/myid 我写的是0对应server.0#
#第二台linux中的/usr/local/zookeeper/data/myid 我写的是1对应server.1#
#第三台linux中的/usr/local/zookeeper/data/myid 我写的是1对应server.2#
#即:server.x => myid = x#
6.开始启动,并查看状态
因为我开始设置了环境变量,所以可以不进去zookeeper/bin下再去启动, 直接输入启动命令。(小提示:xshell连接三台服务器,在全部回话里面,执行一次就全部启动了)
[root@zzg bin]# zkServer.sh start
[root@zzg bin]# zkServer.sh status
关闭服务
[root@zzg bin]# zkServer.sh stop
如果报错如下:
[root@zzg conf]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
解决:
- 配置错了,按以上流程自行检查(我也报错,是因为myid里面数字按错了)
- zoo.cfg 三个端口没有开启
* 操作zookeeper (xshell)*
zkCli.sh 进入zookeeper客户端.
根据命令提示进行操作:
查找:ls /zookeeper
创建并赋值:create /bhz zookeeper
获取:get /bhz
设值:set /bhz/baihezuo
可以看到zookeeper集群数据的一致性
rmr /path 递归删除节点
delete /path/child 删除某个指定的节点
创建节点有两种类型:短暂(ephemeral) 和持久(persistent)
或者使用jar包工具(zookeeper-dev-ZooInspector.jar)操作
打开项目ZooInspector文件夹-build-shift+右键打开命令窗口执行:
java -jar zookeeper-dev-ZooInspector.jar
或者使用eclipse插件,在eclipse中操作
1.在 Eclipse 菜单打开Help -> Install New Software…
2.添加 url http://www.massedynamic.org/eclipse/updates/
3.选择 Plug-in for ZooKeeper 3.2.2 这个选项
4. 开始安装
5.安装完成,如果你发现你在Window->Show View->Other…->ZooKeeper 3.2.2 找不到插件.请耐心等待几分钟.可能你的eclipse和我的一样反应迟钝
这个插件不支持递归删除,所以一般只用来查看, 删除的时候,用xshell命令:rmr 进行递归删除
在第二天启动的时候,竟然报错
注意:使用zkServer.sh status 查看状态的时候,要在启动后等一会在查看,或者多查看几次。感觉这个状态更新的好慢。
[zzg@zzg bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
解决:
进入zookeeper/conf/
[zzg@zzg conf]$ less zookeeper.out 查看日志网上解决方法大概有两种,但都不对:
1)防火墙没关导致通讯失败,无法连接到其他节点上,我在反复检查之后确认防火墙已全部关闭,所以这个方法对我的问题无效命令行:chkconfig iptables off (关闭防火墙)
service iptables status(查看防火墙状态)
2)配置文件问题
a. /zookeeper/conf/zoo.cfg文件配置问题
例如dataDir格式不对,或者没有创建dataDir指定的文件等等,所以细心地检查你的配置文件,至于这个文件的内容请大家自行百度。
b.
dataDir指定的目录下创建myid文件,然后再文件写上你在zoo.cfg中该节点的对应server号,例如server.1,那么myid中就写1。
最后发现,我搭建集群的时候用的是root用户,今天登陆的是用的普通用户,权限不够,切换到root用户,或者给当前用户相应的权限就解决了