三节点(Master、Slave1、Slave2)zookeeper集群的配置(Ubuntu)
程序员文章站
2022-05-31 19:59:58
...
前提:jdk需要配置好,需要奇数个节点
安装zookeeper
zookeeper下载地址(我下载的是3.4.14)
下载后缀名为:.tar.gz 的文件
将zookeeper-3.4.14.tar.gz解压到/usr/local/文件夹下:
sudo tar -zxf ~/下载/zookeeper-3.4.14.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./zookeeper3.4.14/ ./zookeeper # 将文件夹名改为zookeeper
sudo chown -R hadoop ./zookeeper # 修改文件权限
配置zk的zoo.cfg文件 :
cd zookeeper/conf
cp zoo-sample.cfg zoo.cfg #conf里面没有zoo.cfg文件,将zoo-sample.cfg复制一份
vim zoo.cfg
将zoo.cfg文件里面的配置修改如下(如果有更多的节点,server还可以继续加,格式相同):
tickTime=2000
clientPort=2181
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/datalog
initLimit=10
syncLimit=5
server.1=Master:2888:3888
server.2=Slave1:2888:3888
server.3=Slave2:2888:3888
创建目录
配置文件中的dataDir和dataLogDir需要手动创建
cd .. #返回zookeeper目录下
mkdir data
mkdir datalog
下面将Master中的zookeeper目录传输到Slave1、Slave2节点
cd /usr/local
tar -zcf ~/zookeeper.master.tar.gz ./zookeeper # 先压缩再复制
cd ~
scp ./zookeeper.master.tar.gz Slave1:/home/hadoop
scp ./zookeeper.master.tar.gz Slave2:/home/hadoop
在 Slave1 节点上执行:
sudo rm -r /usr/local/zookeeper # 删掉旧的(如果存在)
sudo tar -zxf ~/zookeeper.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/zookeeper
在 Slave2 节点上执行:
sudo rm -r /usr/local/zookeeper # 删掉旧的(如果存在)
sudo tar -zxf ~/zookeeper.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/zookeeper
在Master节点上执行:
echo 1 > /usr/local/zookeeper/data/myid
在Slave1r节点上执行:
echo 2 > /usr/local/zookeeper/data/myid
在Slave2节点上执行:
echo 3 > /usr/local/zookeeper/data/myid
确认三台服务器的myid文件是否创建成功,分别执行如下指令查看myid文件的内容是否正确:
cat /usr/local/zookeeper/data/myid
1
如下图,对应的节点输出对应的数字:
启动zookeeper集群
cd /usr/local/zookeeper/bin ./zkServer.sh start #三个节点都要启动
分别在每个节点用./zkServer.sh status
命令来查看各节点的状态(即:谁是leader,谁是follower)
注意:它的leader和follower是随机分的,不要认为Master就是leader