zookeeper3.5.8分布式搭建

1.虚拟机环境

主机名IP内存磁盘CPU
hadoop1192.168.56.772G40G1
hadoop2192.168.56.882G40G1
hadoop3192.168.56.992G40G1

2.下载安装包

https://mirrors.ustc.edu.cn/apache/zookeeper/zookeeper-3.5.8/
zookeeper下载链接
使用的是中国科学技术大学的开源软件镜像站

3.安装zookeeper

特别注意:安装zookeeper的机器需要安装JDK并且配置好环境变量

使用sftp工具将zookeeper安装上传到hadoop1

3.1配置主机名到IP的映射(所有主机)

vi /etc/hosts
192.168.56.77 hadoop1
192.168.56.88 hadoop2
192.168.56.99 hadoop3

3.2关闭防火墙(所有主机)

systemctl stop firewalld && systemctl disable firewalld

3.3配置免密码登录(hadoop1)

# 三次回车 生成公钥和私钥
ssh-keygen
# 将密钥复制到集群中的各个节点 实现 hadoop1 到 集群所有机器的无密码登录
# 需要输入 yes 和 其它机器的密码
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

3.4解压(hadoop1)

# -C 指定解压的目录 
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /opt/

3.5配置环境变量(hadoop1)

vi /etc/profile
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.5.8-bin/
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 刷新环境变量
source /etc/profile

3.6修改zoo.cfg(hadoop1)

zookeeper的配置文件位于安装目录下的conf目录

# 进入配置文件目录
cd /opt/apache-zookeeper-3.5.8-bin/conf/
ll

zookeeper的配置文件目录
可以使用模板配置,需要将模板配置文件配置复制一份并且重命名为zoo.cfg,本文不使用模板配置,直接创建一个空的zoo.cfg文件并写入相关配置

vi zoo.cfg
# 集群中机器心跳时间
tickTime=2000
# 存放数据的目录
dataDir=/opt/zookeeper/data
# 存放日志文件的目录
dataLogDir=/opt/zookeeper/log
# 客户端通信端口
clientPort=2181
# 集群中机器最开始通信的心跳数量
initLimit=5
# 集群中机器同步的心跳时间
syncLimit=2
# 集群中机器的信息 server.N(id)=(主机名或IP):2888(集群中机器通信端口):3888(选举leader的端口)
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

3.7分发安装包

# 使用scp命令分发安装包
scp -r /opt/apache-zookeeper-3.5.8-bin hadoop2:/opt/
scp -r /opt/apache-zookeeper-3.5.8-bin hadoop3:/opt/
# 将环境变量相关配置也分发到其它机器
scp /etc/profile hadoop2:/etc
scp /etc/profile hadoop3:/etc
# 其它机器也需要刷新环境变量 才能使用相关命令
scource /etc/profile

3.8创建相关文件夹(所有机器)

# 每个机器都需要创建相关文件夹
mkdir -p /opt/zookeeper/{data,log}

3.9myid文件

在zoo.cfg中为每一台机器指定的id,这个id需要写在zookeeper数据目录的myid文件中

# hadoop1 的id为1 在hadoop1上执行
echo 1 > /opt/zookeeper/data/myid
# hadoop3 的id为2 在hadoop2上执行
echo 2 > /opt/zookeeper/data/myid
# hadoop3 的id为3 在hadoop3上执行
echo 3 > /opt/zookeeper/data/myid

配置完成后就可以启动zookeeper了

4.启动

zookeeper的所有命令都位于zookeeper的bin目录,配置了环境变量并且刷新了环境变量,就可以直接执行相关命令了

# 在任意一台机器输入 zk 然后按一下tab可以看到zookeeper的所有命令
# zkServer.sh 服务端相关命令 用于启动 停止 重启zookeeper服务也可以查看zookeeper服务状态
# zkCli.sh 客户端相关命令 用于连接到到zookeeper服务 进行一些数据的增删改查操作

zookeeper的命令

# 使用如下命令启动zookeeper 所有机器都需要手动执行
zkServer.sh start

hadoop1启动zookeeper
hadoop2启动zookeeper
hadoop3启动zookeeper

# 使用jp命令s可以查看到zookeeper的后台java进程 jps是JDK提供的查看本机java进程的命令
jps

hadoop1上执行jps
hadoop2上执行jps
hadoop3上执行jps

# 可以使用zkServer.sh status命令查看每台机器zookeeper服务的状态 主要看机器的角色信息(leader follower)
zkServer.sh status

hadoop1上zookeeper服务状态
hadoop2上zookeeper服务状态
hadoop3上zookeeper服务状态

# 使用zkServer.sh stop 停止当前机器的zookeeper服务
# 使用zkServer.sh restart 重启当前机器的zookeeper服务

5.zookeeper使用脚本

由于zookeeper在启动或者停止的时候需要在每一台机器操作,比较繁琐,可以编写一个脚本让我们在一台机器上就可以操作整个zookeeper集群

vi zoo.sh
#!/bin/bash
for i in 1 2 3 
do
	ssh hadoop$i "source /etc/profile;zkServer.sh $1"
done
# 需要加上可执行权限 才能执行
chmod +x zoo.sh

使用脚本启动停止zookeeper
使用脚本查看zookeeper服务状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宇0926

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值