| 
                         其中的 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 
 
                          (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |