安装的前提条件(JDK1.8 安装方式参照3.6.1)
准备多台服务器例如(192.168.20.3、192.168.20.4、192.168.20.5)
1.安装zookeeper
# 创建安装目录> mkdir /sourcecode/soft/zookeeper> cd /sourcecode/soft/zookeeper# 解压zk> tar -zxvf /sourcecode/soft/zookeeper/zookeeper-3.4.13.tar.gz
2. 修改配置文件
# 拷贝生成新的配置文件 zoo.cfg
> cd zookeeper-3.4.13/conf
> cp zoo_sample.cfg zoo.cfg
# 修改zk配置 xxxx 为服务器id (注:每一台置文件内容相同)
> vi zoo.cfg
dataDir=/sourcecode/soft/zookeeper/data
dataLogDir=/sourcecode/soft/zookeeper/logs
clientPort=2181
server.1= xxxx:2888:3888
server.2= xxxx:2888:3888
# 保存退出
如果碰到拷贝配置文件蹦到错误
# 如果报错 显示:找不到拷贝到哪里的目录
> cp zookeeper-3.4.13/conf/zoo_sample.cfg zoo.cfg
cp: missing destination file operand after ‘zoo_sample.cfg’
# 则进入conf后执行拷贝
> cd zookeeper-3.4.13/conf
> cp zoo_sample.cfg zoo.cfg
3. 创建服务器id编号 、data和logs目录
# 创建data和logs目录
> mkdir /sourcecode/soft/zookeeper/data
> mkdir /sourcecode/soft/zookeeper/logs
# 创建server 编号
> touch /sourcecode/soft/zookeeper/data/myid
> cd /sourcecode/soft/zookeeper/data
> vi myid
1
# 保存退出编辑 注意:配置下一台 vi myid 中输入: 2 依次类推....
注意: zoo.cfg 中的配置 哪个ip的server为1,myid 中也要配置为1
4. 启动zookeeper
# 启动ZK
> cd /sourcecode/soft/zookeeper/zookeeper-3.4.13/bin/
> ./zkServer.sh start zoo.cfg
Using config: /sourcecode/soft/zookeeper/zookeeper-3.4.13/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# 查看状态
> ./zkServer.sh status
# 停止zk
> ./zkServer.sh stop
启动时错误解决办法:
# 启动ZK
> ./zkServer.sh start zoo.cfg
ZooKeeper JMX enabled by default
Using config: /sourcecode/soft/zookeeper/zookeeper-3.4.13/bin/../conf/xxx.cfg
grep: /sourcecode/soft/zookeeper/zookeeper-3.4.13/bin/../conf/xxx.cfg: No such file or directory
mkdir: cannot create directory ‘’: No such file or directory
Starting zookeeper ... STARTED
# zoo.cfg 文件不存在。检查配置文件,zk默认配置文件是zoo_sample.cfg
> ./zkServer.sh start zoo.cfg
-bash: ./zkServer.sh: Permission denied
# 没有权限
> chmod 777 zkServer.sh
5. 防火墙配置
# 查看当前防火墙是否打开
> firewall-cmd --stat
# 开启防火墙
> systemctl start firewalld
# 如果防火墙正在运行则执行如下命令,否则可以不用执行
> firewall-cmd --zone=public --add-port=2181/tcp --permanent
> firewall-cmd --zone=public --add-port=2888/tcp --permanent
> firewall-cmd --zone=public --add-port=3888/tcp --permanent
> firewall-cmd --reload
# 查看已开放的端口
> firewall-cmd --list-ports
