第一步:服务器配置
master 172.16.1.1 node1 172.16.1.2 node2 172.16.1.3
验证 JAVA 运行环境
java -version javac -version
第三步:解压Zookeeper(先在第一台服务器master 上分别执行(1)-(4)步)
(1)解压和重命名:
将zookeeper-3.4.5.tar.gz 放入 /user/local/目录下执行下面命令#1.解压 zookeeper tar zxf zookeeper-3.4.5.tar.gz #2.重命名 文件夹 mv zookeeper-3.4.5 zookeeper
(2)创建数据目录和日志目录:
mkdir /user/local/zookeeper/data mkdir /user/local/zookeeper/dataLog
- (3)配置:将conf/zoo_sample.cfg拷贝一份命名为zoo.cfg,也放在conf目录下
tickTime=2000 dataDir=/user/local/zookeeper/data dataLogDir=/user/local/zookeeper/dataLog initLimit=5 syncLimit=2 #连接 zookeeper 的端口 clientPort=2181 #2888 是集群之间交换信息的端口 #3888 是集群之间选举leader的端口 #如果是伪集群模式的话,这些端口都需要不一样 server.1=172.16.1.1:2888:3888 server.2=172.16.1.2:2888:3888 server.3=172.16.1.3:2888:3888 #注意 server.1 这个后缀,标识的是 172.16.1.1 这个机器,在集群中的 serverid 是1
- (4)标识 ServerID
在目录 /user/local/zookeeper/data 中创建文件 myid,里面写上数字1
接下来将上面的安装文件拷贝到机器中的其他机器上的对应的目录下
- 拷贝文件
scp -r zookeeper root@node1:/user/local/zookeeper scp -r zookeeper root@node1:/user/local/zookeeper
- 修改对应的 myid
#修改 node1 echo "2">/user/local/zookeeper/data/myid #修改 node2 echo "3">/user/local/zookeeper/data/myid
启动Zookeeper 在 master、node1、node2 机器上分别执行如下命令
/usr/local/zookeeper/bin/zkServer.sh start
注意:即便是你都按照上面所说的做了,但是结果还可能会报错:
这个时候,你就需要注意了,这种情况通常是因为找不到对应的服务的地址导致的,这种情况下你应该给所有的机器都配置上一个别名:如果你的是多台机器的集群,那么就像下面这么配置:
如果你是单台机器的伪集群,那么就只需要配置一个就好了如下:
192.168.100.15 zkserver
当然你的 zoo.cfg 文件也是需要修改的:把使用 ip 的地方换为别名,这样再去链接 zookeeper 服务的时候就没有问题了。
```
server.1=zkserver:2555:3555
server.2=zkserver:2666:3666
server.3=zkserver:2777:3777
```
8. zookeeper 集群启动脚本:
#!/bin/bash
#声明服务器:
server11=192.168.100.11
server12=192.168.100.12
server13=192.168.100.13
cd /opt/tools/zookeeper-3.4.6;bin/zkServer.sh stop;bin/zkServer.sh start
echo "${server11} is ready......"
echo -e "\n\n"
# 远程启动需要输出远程机器的 java_home
ssh root@server12 "export JAVA_HOME=/opt/tools/jdk1.7.0_67;export PATH=$JAVA_HOME/bin:$PATH;export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;cd /opt/tools/zookeeper-3.4.6;bin/zkServer.sh stop;bin/zkServer.sh start"
echo "${server12} is ready......"
echo -e "\n\n"
ssh root@server13 "export JAVA_HOME=/opt/tools/jdk1.7.0_67;export PATH=$JAVA_HOME/bin:$PATH;export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;cd /opt/tools/zookeeper-3.4.6;bin/zkServer.sh stop;bin/zkServer.sh start"
echo "${server13} is ready......"