一、规划
192.168.60.100 znode01
192.168.60.110 znode02
192.168.60.120 znode03
二、环境准备
1.配置ip地址并可以连接互联网
2.ssh互信
[root@znode01 ~]# ssh-keygen -t rsa
[root@znode01 ~]# mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
[root@znode01 ~]# for i in 100 110 120; do scp -r /root/.ssh/ 192.168.60.$i:/root/; done
3.设置主机名,并同步主机解析
[root@znode01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.60.100 znode01.com
192.168.60.110 znode02.com
192.168.60.120 znode02.com
[root@znode01 ~]# for i in 100 110 120; do scp -r /etc/hosts 192.168.60.$i:/etc/; done
4.关闭防火墙
systemctl stop firewalld
systemctl disabled firewalld
5.关闭selinux
setenforce 0
cat /etc/selinux/config
SELINUX=disabled
6.时间同步
ntpdate ntp.aliyun.com
三、下载
我用夸克网盘分享了「jdk-8u91-linux-x64.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/35c4f1ed2e69
我用夸克网盘分享了「apache-zookeeper-3.7.1-bin.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/3225d8dd5808
四、解压安装
JDK——
[root@znode01 /]# tar -xvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ #解压jdk包
[root@znode01 /]# vim /etc/profile #配置java的环境变量(文件末尾加上就行)
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
[root@znode01 /]# source /etc/profile #生效(source命令只在当前终端生效)
[root@znode01 /]# java -version #查看版本
其余两台机子也安装一下jdk以及配置一下环境变量
[root@znode01 /]# scp -r /usr/local/jdk1.8.0_91 192.168.60.110:/usr/local/ #拷贝过去
[root@znode01 /]# scp -r /usr/local/jdk1.8.0_91 192.168.60.120:/usr/local/
[root@znode02 ~]# vim /etc/profile #配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
[root@znode02 ~]# source /etc/profile #生效
[root@znode02 ~]# java -version #查看版本
[root@znode03 ~]# vim /etc/profile #配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
[root@znode03 ~]# source /etc/profile #生效
[root@znode03 ~]# java -version #查看版本
zookeeper——
[root@znode01 /]# tar -xvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/ #解压
[root@znode01 /]# mv /usr/local/apache-zookeeper-3.7.1-bin /usr/local/zookeeper #重命名
[root@znode01 /]# mkdir /usr/local/zookeeper/data #创建持久化数据目录
[root@znode01 /]# mkdir /usr/local/zookeeper/log #日志目录
(因为还有一些配置需要修改,所以这里先不准备其他两个节点的zookeeper安装,等在znode01上面修改好后直接拷贝到其他两个节点上就行)
五、配置zookeeper
[root@znode01 /]# cd /usr/local/zookeeper/conf/ #准备配置文件
[root@znode01 conf]# cp zoo_sample.cfg zoo.cfg
[root@znode01 conf]# vim zoo.cfg #修改配置
dataDir=/usr/local/zookeeper/data #持久化数据目录的路径
dataLogDir=/usr/local/zookeeper/log #日志目录
clientPort=2181 #客户端连接的端口,默认就是2181
server.1=192.168.60.100:2888:3888
server.2=192.168.60.110:2888:3888
server.3=192.168.60.120:2888:3888
(2888是这三个server之间相互传递心跳,3888用于这三个server相互同步数据,然后server.1,这“.”后面跟的数字就是选举机制里面的myid,这个myid是需要文件存放的,我们需要在data目录下创建一个myid文件来存放myid)
[root@znode01 conf]# touch /usr/local/zookeeper/data/myid #存放myid
[root@znode01 conf]# echo 1 > /usr/local/zookeeper/data/myid
准备其他两个节点zookeeper的安装与配置——
[root@znode01 conf]# scp -r /usr/local/zookeeper 192.168.60.110:/usr/local/
[root@znode01 conf]# scp -r /usr/local/zookeeper 192.168.60.120:/usr/local/
[root@znode02 ~]# echo 2 > /usr/local/zookeeper/data/myid
[root@znode03 ~]# echo 3 > /usr/local/zookeeper/data/myid
六、启动zookeeper,查看状态
启动znode01——
[root@znode01 /]# cd /usr/local/zookeeper/bin/
[root@znode01 bin]# ./zkServer.sh start #启动
(这是这个启动时加载的配置)
[root@znode01 bin]# ./zkServer.sh status #查看状态
(可以看到是error的状态以及zookeeper没有运行,这是正常状态,因为zookeeper有一个半数存活原则,三个zookeeper组成的集群,至少得有两个zookeeper启动,只启动一个自然是没有的)
启动znode02——
[root@znode02 ~]# cd /usr/local/zookeeper/bin/
[root@znode02 bin]# ./zkServer.sh start
[root@znode02 bin]# ./zkServer.sh status
(这是可以看到,没有error信息了,第二个启动的zookeeper变成了主leader,那第一个启动的就自然变成了从follower)
[root@znode01 bin]# ./zkServer.sh status
启动znode03——
[root@znode03 ~]# cd /usr/local/zookeeper/bin/
[root@znode03 bin]# ./zkServer.sh start
[root@znode03 bin]# ./zkServer.sh status
(一旦zookeeper集群里面有了leader,后面启动的zookeeper服务都是从follower)
(至此,整个zookeeper集群的部署就结束了,接下来就是开发的工作了)