其中的 server.N = hostname : port1 : port2:
- N(1,2,3): “必须”是一个数字(表示这是第几号server),否则报错 java.lang.NumberFormatException: For input string: "xxx"
- hostname(localhost): 是该 server 所在的域名或IP地址,为了通用,可替换为域名zk{n}.company.com 并在 hosts 里配置;
- port1(2281,2282,2283): 当前 server 是 leader 时,监听此端口接受 followers 的连接,注意followers不会监听此端口(直到它升级为 leader)
- port2(2291,2292,2293): 是选举 leader 时所使用的端口。
必须生成文件 $ZOOKEEPER_HOME/data/%n/myid,其内容为 zoo.cnf 中的 N(服务器ID), 否则抛出异常 java.lang.IllegalArgumentException: $ZOOKEEPER_HOME/data/{n}/myid file is missing
2.4 服务的配置并启动
- ## sudo vim /usr/lib/systemd/system/zookeeper@.service
- ## 其中的 %i 将来会被替换为具体的 1/2/3
- [Unit]
- Description=ZooKeeper
- After=syslog.target network.target
-
- [Service]
- Type=forking
- Environment="ZOOCFG=zoo-%i.cfg"
- ExecStart=/opt/zookeeper-3.4.11/bin/zkServer.sh start
- ExecStop=/opt/zookeeper-3.4.11/bin/zkServer.sh stop
-
- [Install]
- WantedBy=multi-user.target
配置为自动启动,并立即启动:
- sudo systemctl daemon-reload
- sudo systemctl enable zookeeper@{1,2,3}
- sudo systemctl start zookeeper@{1,2,3}
- sudo netstat -natp | grep LISTEN | grep -E "218|228|229"
- # sudo systemctl stop zookeeper@{1,2,3}
2.5 防火墙放行
如果非本机应用需要连接 ZooKeeper,必须把所有 clientPort 端口放行。
- ### sudo vim /etc/sysconfig/iptables
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 2182 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 2183 -j ACCEPT
- ### 重启生效: sudo systemctl restart iptables
2.6 客户端验证
- zkCli.sh -server localhost:2181 ## 进入命令行状态
- help ## 显示所有命令格式
- quit ## 退出命令行状态
- history ## 显示历史命令
-
- ls path [watch]
- createpath data acl
- delete path [version]
- set path data [version]
- get path [watch]
- stat path [watch]
- sync path
-
- listquota path
- setquota -n|-b val path
- delquota [-n|-b] path
-
- addauth scheme auth
- setAcl path acl
- getAcl path
-
- printwatches on|off
- redo cmdno
也可集连接和命令于一行:
- zkCli.sh -server localhost:2181 ls /
2.7 清空数据【慎用】
- sudo systemctl stop zookeeper@{1,2,3}
- sudo rm -rf $ZOOKEEPER_HOME/{logs,data}/{1,2,3}/version-*
- sudo systemctl start zookeeper@{1,2,3}
2.8 卸载服务【慎用】
- sudo systemctl stop zookeeper@{1,2,3}
- sudo systemctl disable zookeeper@{1,2,3}
- sudo rm -rf $ZOOKEEPER_HOME
3.Windows 下安装(可用于开发)
3.1 下载
https://archive.apache.org/dist/zookeeper/
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
3.2 安装
3.2.1 解压
3.2.2 修改系统环境变量
- set ZOOKEEPER_HOME={???}zookeeper-3.4.11
- set PATH=%ZOOKEEPER_HOME%bin
(编辑:广西网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|