官网下载步骤
学习到22分钟 视频里面是3台服务器 到时候自己也搞三台 感觉有点费劲啊 😄
安装
- 解压到 local 下面 和jdk 其他都是类似的
tar -zxvf /usr/local/soft/apache-zookeeper-3.6.0-bin.tar.gz -C /usr/local
- 修改个名字吧
直接用工具修改就行
zookeeper
创建 zoo.cfg
到 zookeeper 的 conf 中 复制 zoo_sample.cfg 到新文件 zoo.cfg
cat 查看 然后过滤一些内容
zoo.cfg 把查看内容复制到新文件里面
cat zoo_sample.cfg |grep -v "#" |grep -v "^$" > zoo.cfg
创建data 文件夹
创建一个data 在zookeeper下面创建
mkdir data
在data文件下创建 myid
echo 1 > myid
echo 2 > myid
echo 3 > myid
cat myid 查看一下
目前就用一个服务器配置三个zookeeper
修改一下名字吧
mv zookeeper zookeeper1
cp -R zookeeper1/ zookeeper2
cp -R zookeeper1/ zookeeper3
先把myid 分别改成 1 2 3
修改zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper1/data
clientPort=2181
server.1=192.168.96.2:2888:38888
server.2=192.168.96.2:2887:38887
server.3=192.168.96.2:2889:38889
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper1/data
clientPort=2182
server.1=192.168.96.2:2888:38888
server.2=192.168.96.2:2887:38887
server.3=192.168.96.2:2889:38889
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper3/data
clientPort=2183
server.1=192.168.96.2:2888:38888
server.2=192.168.96.2:2887:38887
server.3=192.168.96.2:2889:38889
启动
到每一个zookeeper下面启动
zkServer.sh start # 启动命令
zkServer.sh status # 查看状态命令
zkServer.sh stop # 停止服务命令
zkServer.sh restart# 停止服务命令
到bin目录下
cd /usr/local/zookeeper/bin
./zkServer.sh start
./zkServer.sh status
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh start
jps 查看
进入客户端
./zkCli.sh
help
如果有错误到logs里面看 .out 文件
logs也可以删除哦 删除后 继续看 重试。我没遇到就说一下吧。
代码连接遇到错误
其实就是防护墙没有关闭导致的 。我去
另外 记得start zk哦
centos7.0默认不是使用iptables方式管理防火墙,而是firewalld方式,centos6.0防火墙才使用iptables管理。 我就用这个
#停止firewall防火墙
systemctl stop firewalld
#禁止firewall开机启动
systemctl disable firewalld
#查看firewall状态
systemctl status firewalld
# systemctl stop iptables #停止firewall防火墙
# systemctl disable iptables #禁止firewall开机启动
# systemctl status iptables #查看firewall状态
进入zk客户端 链接失败
java.net.ConnectException: Connection refused
为什么 Mode:standalone
因为我用fileZa去操作myid 和zoo.cfg
myid
中间有空格还是回撤 还是用echo 写入把
zoo.cfg
Server 大写了 应该小写 server 另外也有空格
后期我已经部署三台服务器
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
server.1=192.168.202.3:3188:32888
server.2=192.168.202.4:3188:32888
server.3=192.168.202.5:3188:32888
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
server.1=192.168.202.3:3188:32888
server.2=192.168.202.4:3188:32888
server.3=192.168.202.5:3188:32888
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
server.1=192.168.202.3:3188:32888
server.2=192.168.202.4:3188:32888
server.3=192.168.202.5:3188:32888
拒绝连接 refued
java.net.ConnectException: 拒绝连接
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:342)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1262)
\
2022-04-14 15:41:17,557 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1154] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181.
2022-04-14 15:41:17,557 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1156] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
2022-04-14 15:41:17,558 [myid:localhost:2181] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1266] - An exception was thrown while closing send thread for session 0x0.
其实端口应该都是2181 因为部署三台 如果部署一台 复制zookeeper 可以试试端口 2181 2182 2183
本地安装
创建data目录 创建zoo.cfg 然后启动即可 似乎 myid不用也行