zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。
搭建zookeeper集群环境:3台CenterOs系统和zookeeper-3.5.2-alpha.tar.gz,和jdk-8u161-linux-x64.tar.gz
本次搭建的系统ip地址分别为:192.168.195.130,192.168.195.131,192.168.195.132.
1.安装jdk
1.1将jdk安装包拷贝到/usr/local/opensource目录下,进入到该目录下:
cd /usr/local/opensource
1.2使用解压命令对该文件进行解压,并将该解压文件解压到/usr/local目录下
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local
1.3修改解压后的jdk文件夹的名称:
mv jdk-8u161-linux-x64 jdk1.8
1.4配置jdk环境变量:
vi /etc/profile
1.5在/etc/profile目录下添加
export JAVA_HOME=/usr/local/jdk1.8
expor tPATH=.:$JAVA_HOME/bin:$PATH
1.6重启服务:
source /etc/profile
2.安装zookeeper服务
2.1切换到 /usr/local/opensource目录下,对zookeeper-3.5.2-alpha.tar.gz安装包进行解压,解压后将该解压文件放置到/usr/local目录下:
tar -zxvf zookeeper-3.5.2-alpha.tar.gz -C /usr/local
2.2 修改该解压文件之后的文件夹名称
mv zookeeper-3.5.2-alpha zookeeper
2.3配置zookeeper环境变量,对/etc/profile文件进行编辑
vi /etc/profile
2.4 在profile文件中添加
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=.:$ZOOKEEPER_HOME/bin:$PATH
2.5 切换到/usr/local/zookeeper/conf,将该文件夹中的,将 zoo_sample.cfg文件备份一份,备份名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
2.6对zoo.cfg文件进行编辑
vi zoo.cfg
2.7在zoo.cfg中添加
2.7.1内存数据持久化地址:
dataDir=/usr/local/zookeeper/data
2.7.2 存放日志的地址
dataLogDir=/usr/local/zookeeper/log
2.7.3设置zookeeper的管理界面端口号
admin.serverPort =8888
2.7.4添加集群主机
server.0=192.168.195.130:2888:3888
server.1=192.168.195.131:2888:3888
server.2=192.168.195.132:2888:3888
2.8创建内存数据持久化目录
mkdir data
2.9进入到data目录下,创建myid文件,在myid添加指向的主机名
vi myid
myid中的值必须跟server.x一致。
2.10 启动zookeeper
2.10.1切换到zookeeper目录下的bin目录,输入启动命令
zkServer.sh start
2.10.2查看zookeeper启动状态
zkServer.sh status
当出现
或
3.问题阐述:
在部署zookeeper集群时候,当出现
问题出现的原因:由于将zookeeper对外访问的端口号从防火墙中排出掉,导致无法进行集群化,或者关闭防火墙。
可以查看防火墙的状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
禁止开机的时候来启动我们的防火墙:
systemctl disable firewalld.service
假如关闭了防火墙还没有解决这个问题:
那么我们可以一步一步进行排除:
先从jdk的环境变量进行排除
再到zookeeper的配置,查看myid文件中的server与conf目录下的zoo.cfg目录下的主机是否配置,myid的值是zoo.cfg文件里定义的server.x项x的值,Zookeeper启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server,只是一个标识作用。
server.x中的必须是一个唯一的值,不能相同。否则在集群的时候会出现那个问题.