![3591ad9e66db85375a297bf746c86e05.png](https://img-blog.csdnimg.cn/img_convert/3591ad9e66db85375a297bf746c86e05.png)
先部署jdk
下载不讲
tar -zxvf jdk-8u151-linux-x64.tar.gz
修改环境变量,
通过修改.bash_profile的方式。这种方式更安全,只对当前用户生效。
vim .bash_profile
在最后加上你自己的路径
export JAVA_HOME=/home/haieradmin/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
使环境变量生效
执行source .bash_profile
看一下java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
OK了
部署zookeeper
部署3节点的集群。提前准备好机器,root权限(为了开防火墙端口,如果端口已经打开,那不需要root权限了)
下载zookeeper安装包
这个自己去官网下载,不讲了
tar -zxvf zookeeper-3.4.12.tar.gz
建目录
cd zookeeper-3.4.12
mkdir log data
配置myid
注意,只有这一步是不一样的,在三台机器上分别执行:
echo '1' > data/myid
echo '2' > data/myid
echo '3' > data/myid
修改配置文件
cd conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
把以前的dataDir注释掉
然后增加以下配置内容
dataDir=/home/haieradmin/zookeeper-3.4.12/data
dataLogDir=/home/haieradmin/zookeeper-3.4.12/log
server.1=10.133.x.x:2888:3888
server.2=10.133.y.y:2888:3888
server.3=10.133.z.z:2888:3888
server.x的x与上一步配置的myid是要对应起来的
2888端口号是表示这台服务器与集群中的Leader服务器交换信息的端口。
3888端口表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,这个端口就是用来执行选举时服务器相互通信的端口。
防火墙打开相关端口
2181,2888,3888
我的是centos7,命令如下
firewall-cmd --zone=public --add-port=2181/tcp --permanentfirewall-cmd --zone=public --add-port=2888/tcp --permanentfirewall-cmd --zone=public --add-port=3888/tcp --permanentfirewall-cmd --reload
启动
cd bin
./zkServer.sh start 启动
./zkServer.sh stop 停止
./zkServer.sh restart 重启
./zkServer.sh status 查看状态
完成
问题排查:
1,可能因为某些问题,导致Zookeeper没起来。
./zkServer.sh start[haieradmin@ppaasmmongo1 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/haieradmin/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
这个时候去bin/zookeeper.out查看日志
一般常见的是java.net.NoRouteToHostException: No route to host (Host unreachable)
这个就是你防火墙没打开的问题
2,如果是zk初始启动都没起来,这个时候日志也是也是没有输出的。
解决办法是:
可以使用前台启动,就可以看到日志了
zkServer.sh start-foreground