Zookeeper 集群安装配置

Zookeeper 是什么?

Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造
成脏读的问题。

  • ZooKeeper本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。
  • ZooKeeper提供给客户端监控存储在zk内部数据的功能,从而可以达到基于数据的集群管理。诸如:统一命名服务(dubbo)、分布式配置管理(solr的配置集中管理)、分布式消息队列(sub/pub)、分布式锁、分布式协调等功能。

Zookeeper 环境搭建

Zookeeper的搭建方式

Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式。

  • 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
  • 伪集群模式:就是在一台服务器上运行多个 Zookeeper 实例;
  • 集群模式:Zookeeper 运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”

Zookeeper集群搭建

下载安装

Master 节点中
下载并解压
首先我们下载稳定版本的zookeeper http://zookeeper.apache.org/releases.html

wget http://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz -P /opt/software

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt/servers

cd /opt/servers
mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0

修改配置并创建 data 和 log 目录

# 创建 data 和 log 目录
mkdir -p /opt/servers/zookeeper-3.7.0/data/log
# 进入配置目录
cd /opt/servers/zookeeper-3.7.0/conf
# 复制一份配置模版并重命名
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
# 修改
dataDir=/opt/servers/zookeeper-3.7.0/data
# 新增
dataLogDir=/opt/servers/zookeeper-3.7.0/data/log
# 打开注释
#ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时
autopurge.purgeInterval=1

# 新增集群配置
# server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

添加myid配置

1.在zookeeper的data目录下创建一个myid文件,内容为1,这个文件就是记录每个服务器的ID

cd /opt/servers/zookeeper-3.7.0/data
echo 1 > myid

将Zookeeper分发到其他节点

cd /opt/servers
rsync-script zookeeper-3.7.0/

修改slave1和slave2的myid

# slave1 节点
echo 2 > /opt/servers/zookeeper-3.7.0/data/myid

# slave2 节点
echo 3 > /opt/servers/zookeeper-3.7.0/data/myid

启动 Zk 实例

三个节点都要执行

/opt/servers/zookeeper-3.7.0/bin/zkServer.sh start

查看Zk启动情况

/opt/servers/zookeeper-3.7.0/bin/zkServer.sh status

Zookeeper 集群安装配置

群起 Zk 脚本

因为每次都要在三台机子上执行启动命令,所以自己我们就自己写一个启动脚本

cd ~ 
mkdir shells                                  
cd shells 
vim zk.sh

**将以下文件写如到 zk.sh 中

#!/bin/sh
echo "$1 zookeeper server..."
if(($#==0));then
echo "no param";
exit;
fi

# 此处写上你的三台
hosts="master slave1 slave2"

for host in $hosts
do
echo "$host server ${1}ing..."
ssh $host "source /etc/profile;/opt/servers/zookeeper-3.7.0/bin/zkServer.sh $1"
done

赋予执行权限

chmod 777 zk.sh

启动 / 停止 zookeeper 集群

# 启动
~/shells/zk.sh start
# 停止
~/shells/zk.sh stop
# 查看服务状态
~/shells/zk.sh status

启动成功后所有机器上都有这个服务

jps

Zookeeper 集群安装配置

上一篇:算法分析与设计(work8)


下一篇:真香了!牛客网超火 1500 页 2021 最新大厂面试真题整理