1.1安装zookeeper
提要
系统版本:CentOS Linux release 7.6.1810 (Core)
IP地址:
master:192.168.0.250
slave1:192.168.0.251
slave2:192.168.0.252
1.1.1关闭防火墙和selinux
关闭selinux 最好两个selinux配置文件都关闭(三台机器都执行)
vim /etc/selinux/config
SELINUX=disabled
vim /etc/sysconfig/selinux
SELINUX=disabled
systemctl stop firewalld
systemctl disable firewalld
reboot 重启
sestatus 开机后查看selinux状态是否为disabled
1.1.2修改主机名
1、(master执行)
hostnamectl set-hostname master
bash
2、(slave1执行)
hostnamectl set-hostname slave1
bash
3、(slave2执行)
hostnamectl set-hostname slave2
bash
4、三个节点的ip地址以及其对应的名称写进hosts文件。这里我们设置为master、slave1、slave2。注意保存退出。(三台机器都执行)
vim /etc/hosts
192.168.0.250 master
192.168.0.251 slave1
192.168.0.252 slave2
1.1.2时间同步
1、选择时区:tzselect (三台机器都执行)
2、下载ntp(三台机器都执行)
yum install -y ntp
3、master作为ntp服务器,修改ntp配置文件。(master上执行)
vim /etc/ntp.conf
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #stratum设置为其它值也是可以的,其范围为0~15
server #注释
4、重启ntp服务。(master上执行)
systemctl restart ntpd.service
5、其他机器进行同步(在slave1,slave2中执行)
ntpdate master
1.1.3配置ssh免密
1、在master上执行如下命令生成公私密钥:(注意master上执行)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2、然后将master公钥id_dsa复制到slave1进行公钥认证。
ssh-copy-id -i /root/.ssh/id_dsa.pub slave1
退出连接:exit
同理可以将master公钥复制到master、slave2进行公钥认证。
ssh-copy-id -i /root/.ssh/id_dsa.pub master
ssh-copy-id -i /root/.ssh/id_dsa.pub slave2
master到slave1、slave2的免密。如果想配置其他免密,其命令类似。
2.1安装JDK
先在master上操作,然后远程复制到slave1和slave2
首先在根目录下建立工作路径/usr/java
mkdir -p /usr/java
进入创建的java工作路径
cd /usr/java
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/(在master执行)
修改环境变量:vim /etc/profile(在master执行)
添加内容如下:
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
生效环境变量:source /etc/profile(在master执行)
查看java版本:java -version(在master执行)
在master中将JDK复制到slave1和slave2中。(在master执行)
scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/
3.1安装zookeeper
1.首先创建zookeeper的工作路径:(在master上执行,然后远程复制到其他节点)
mkdir -p /usr/zookeeper
cd /usr/zookeeper
解压到/usr/zookeeper
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/zookeeper
在zookeeper的目录中,创建配置中所需的zkdata和zkdatalog两个文件夹。(在master执行)
cd /usr/zookeeper/zookeeper-3.4.10
mkdir zkdata
mkdir zkdatalog
2.配置文件zoo.cfg(在master上执行)
进入zookeeper配置文件夹conf,将zoo_sample.cfg文件拷贝一份命名为zoo.cfg,Zookeeper 在启动时会找这个文件作为默认配置文件。
cd /usr/zookeeper/zookeeper-3.4.10/conf/
mv zoo_sample.cfg zoo.cfg
对zoo.cfg文件配置如下:(在master执行)
vim zoo.cfg
修改如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
3.进入zkdata文件夹,创建文件myid,用于表示是几号服务器。master主机中,设置服务器id为1。(集群中设置master为1号服务器,slave1为2号服务器,slave2为3号服务器)(在master上执行)
cd /usr/zookeeper/zookeeper-3.4.10/zkdata
vim myid
1
4.远程复制分发安装文件。
以上已经在主节点master上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:(在master执行)
scp -r /usr/zookeeper root@slave1:/usr/
scp -r /usr/zookeeper root@slave2:/usr/
5.设置myid。在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字。(在slave1和slave2中执行)
cd /usr/zookeeper/zookeeper-3.4.10/zkdata
vim myid
实验中设置slave1中为2;
slave2中为3:
6.修改/etc/profile文件,配置zookeeper环境变量。(三台机器都执行)
vi /etc/profile
#set zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
PATH=$PATH:$ZOOKEEPER_HOME/bin
生效环境变量:source /etc/profile
7.启动ZooKeeper集群。在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本。注意在zookeeper目录下:(三台机器都执行)
回到上一层:cd ..
开启服务:bin/zkServer.sh start
查看状态:bin/zkServer.sh status
以上可以看出,一个节点是Leader,其余的结点是Follower。