Zookeeper 集群安装配置
Zookeeper 是什么?
Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造
成脏读的问题。
- ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。
- ZooKeeper 提供给客户端监控存储在 zk 内部数据的功能,从而可以达到基于数据的集群管理。诸如:统一命名服务(dubbo)、分布式配置管理(solr 的配置集中管理)、分布式消息队列(sub/pub)、分布式锁、分布式协调等功能。
Zookeeper 环境搭建
Zookeeper 的搭建方式
Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式。
- 单机模式:Zookeeper 只运行在一台服务器上,适合测试环境;
- 伪集群模式:就是在一台服务器上运行多个 Zookeeper 实例;
- 集群模式:Zookeeper 运行于一个集群上,适合生产环境,这个计算机集群被称为一个 “集合体”
Zookeeper 集群搭建
下载安装
Master 节点中
下载并解压
首先我们下载稳定版本的 zookeeper http://zookeeper.apache.org/releases.html1
2
3
4
5
6wget http://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz -P /opt/software
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/servers
cd /opt/servers
mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1
修改配置并创建 data 和 log 目录
1 | # 创建 data 和 log 目录 |
1 | # 修改 |
添加 myid 配置
1. 在 zookeeper 的 data 目录下创建一个 myid 文件,内容为 1, 这个文件就是记录每个服务器的 ID1
2cd /opt/servers/zookeeper-3.7.1/data
echo 1 > myid
将 Zookeeper 分发到其他节点
1 | cd /opt/servers |
修改 slave1 和 slave2 的 myid1
2
3
4
5# slave1 节点
echo 2 > /opt/servers/zookeeper-3.7.1/data/myid
# slave2 节点
echo 3 > /opt/servers/zookeeper-3.7.1/data/myid
启动 Zk 实例
三个节点都要执行1
/opt/servers/zookeeper-3.7.1/bin/zkServer.sh start
查看 Zk 启动情况1
/opt/servers/zookeeper-3.7.1/bin/zkServer.sh status
群起 Zk 脚本
因为每次都要在三台机子上执行启动命令,所以自己我们就自己写一个启动脚本
1 | cd ~ |
** 将以下文件写如到 zk.sh 中1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#!/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.1/bin/zkServer.sh $1"
done
赋予执行权限1
chmod 777 zk.sh
启动 / 停止 zookeeper 集群1
2
3
4
5
6# 启动
~/shells/zk.sh start
# 停止
~/shells/zk.sh stop
# 查看服务状态
~/shells/zk.sh status
启动成功后所有机器上都有这个服务1
jps