(2) 服务器命名
在xshell中操作主机zookeeper01.在zkData下新建并编辑文件myid。
cd /home/wangzhou/Downloads/zookeeper-3.5.7/zkData
输入1并保存退出。
3)软件分发
我们可以使用软件分发脚本将zookeeper,jdk等直接分发到其它主机,在集群数量很多的情况下这可是特别高效的,不过在软件分发前我们需要做一些准备工作。
先将需要集群的主机取下别名。
sudo vim /etc/hosts • 1
然后在home目录下新建文件夹bin
mkdir bin •
编辑文件xsync
,关于这个命令的更多介绍可以参考集群服务器的同步xsync命令使用_诗水人间的博客-CSDN博客_xsync未找到命令进行了解,总之它可以用来实现集群的软件分发工作。
vim xsync
具体内容如下。
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=2;host<4;host++)); do echo ------------------- zookeeper$host -------------- rsync -rvl $pdir/$fname $user@zookeeper0$host:$pdir done
准备工作做好了,返回到zookeeper的上级目录,同步分发zookeeper。
/home/wangzhou/Downloads su root xsync ~/Downloads/zookeeper-3.5.7/ • 1 • 2 • 3
执行结果如下。可以在102上检查下。好神奇啊是不是。
对另外两台主机也新建myid文件,分别写入2,3。
编辑服务器zookeeper01的配置文件 zoo.cfg。
#######################cluster########################## server.1=zookeeper01:2888:3888 server.2=zookeeper02:2888:3888 server.3=zookeeper03:2888:3888
上面的配置格式如下
server.A=B:C:D • 1
其中A就是我们配置的myid,相当于一个身份标示;B就是主机的地址,我们更改了hosts文件,因此就使用别名代替了,您也可以直接使用ip地址;c时Leader与Follower通信的端口号;D是当Leader服务器挂了,用于选举的通信端口号。
分发到其它服务器。
[wangzhou@bogon conf]$ su root [root@bogon conf]# xsync ./zoo.cfg
启动zookeeper01。报错如下。
Error: JAVA_HOME is not set and java could not be found in PATH. • 1
我们目前有三台服务器,但是只启动了一台,根据集群规则,zookeeper集群还没有达到半数服务器运行,集群无法正常运行。
我们如法炮制,将jdk,环境变量文件等分发到其它服务器,然后再启动一台服务器即可。
查看zkServer.sh status,zookeeper没有真正跑起来
、
[wangzhou@bogon zookeeper-3.5.7]$ ./bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/wangzhou/Downloads/zookeeper-3.5.7/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Error contacting service. It is probably not running.
查看日志。
[wangzhou@bogon zookeeper-3.5.7]$ cd logs [wangzhou@bogon logs]$ vim zookeeper-root-server-bogon.out
日志信息如下
2022-04-03 12:25:46,551 [myid:] - INFO [main:QuorumPeerConfig@135] - Reading configuration from: /home/wangzhou/Downloads/zookeeper-3.5.7/bin/../conf/zoo.cfg 2022-04-03 12:25:46,574 [myid:] - INFO [main:QuorumPeerConfig@387] - clientPortAddress is 0.0.0.0:2181 2022-04-03 12:25:46,574 [myid:] - INFO [main:QuorumPeerConfig@391] - secureClientPort is not set 2022-04-03 12:25:46,599 [myid:] - ERROR [main:QuorumPeerMain@89] - Invalid config, exiting abnormally org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: zookeeper01:3888 at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.<init>(QuorumPeer.java:261) at org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(QuorumMaj.java:89) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.createQuorumVerifier(QuorumPeerConfig.java:597) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseDynamicConfig(QuorumPeerConfig.java:630) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:603) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:422) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:152) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:113) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82) Invalid config, exiting abnormally
在CentOS 5和CentOS 6系统中,关于如何开启防火墙、关闭防火墙、查看防火墙运行状态,请参考以下信息,注意需要在root用户操作哦
- 开启防火墙
service iptables start • 1
- 关闭防火墙
service iptables stop • 1
- 查看防火墙运行状态
service iptables status • 1
终于成功了