zookeeper集群搭建

三台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.

解决:

  1. 配置错了,按以上流程自行检查(我也报错,是因为myid里面数字按错了)
  2. 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用户,或者给当前用户相应的权限就解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值