01. Zookeeper 安装配置

Zookeeper

01. Zookeeper 安装配置

1. 简介

1.1 ZooKeeper是什么?

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

2. Zookeeper 安装配置

2.1 单机模式

  1. 下载 zookeeper
    进入要下载的版本的目录,选择.tar.gz文件下载
    下载链接ZooKeeper Releases

  2. 安装 zookeeper
    使用tar解压要安装的目录即可,以3.4.5版本为例

这里以解压到/usr/local,实际安装根据自己的想安装的目录修改==(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)==

tar -zxf zookeeper-3.4.5.tar.gz ../zookeeper
  1. 配置 zookeeper
    在主目录下创建data和logs两个目录用于存储数据和日志:
cd /usr/local/zookeeper
mkdir data
mkdir logs

在conf目录下新建zoo.cfg文件,写入以下内容保存:

# 发送心跳的间隔时间,单位:毫秒
tickTime=2000
# zookeeper保存数据的目录
dataDir=/usr/lcoal/zookeeper/data
# 日志目录
dataLogDir=/usr/local/zookeeper/logs
# 端口
clientPort=2181
  1. 启动及停止 zookeeper
    进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status

2.2 伪集群模式

伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在10.10.19.113主机上创3个zookeeper组集群为例。

将通过上面安装的zookeeper,复制成zookeeper1/zookeeper2/zookeeper3三份

由于伪集群模式中,使用的是同一台服务器,也就是说,需要在单台机器上运行多个zookeeper实例,所以必须要保证多个zookeeper实例的配置文件的client端口不能冲突。

  1. 将zookeeper复制三分
cp -r zookeeper/ zookeeper1
cp -r zookeeper/ zookeeper2
cp -r zookeeper/ zookeeper3
  1. 配置 zookeeper1
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper1/data
dataLogDir=/usr/local/zk/zookeeper1/logs
clientPort=2181
# leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数
initLimit=5
# leader和follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度
syncLimit=2
# zookeeper机器列表,server.order这里的Order依据集群的机器个数依次进行递增
server.1=10.10.19.113:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.113:6888:7888

在zookeeper集群配置文件中,clientPort参数用来设置客户端连接zookeeper服务器的端口

- server.1=IP1:2888:3888 中:
    - IP1 : 指的是组成Zookeeper服务器的IP地址,
    - 2888: 为组成zookeeper服务器之间的通信端口,
    - 3888: 为用来选举leader的端口。
  • zookeeper1的data/myid配置如下:
echo '1' > data/myid
  1. 配置 zookeeper2
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper2/data
dataLogDir=/usr/local/zk/zookeeper2/logs
clientPort=2182
# leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数
initLimit=5
# leader和follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度
syncLimit=2
# zookeeper机器列表,server.order这里的Order依据集群的机器个数依次进行递增
server.1=10.10.19.113:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.113:6888:7888
  • zookeeper2的data/myid配置如下:
echo '2' > data/myid
  1. 配置 zookeeper3
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper3/data
dataLogDir=/usr/local/zk/zookeeper3/logs
clientPort=2183
# leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数
initLimit=5
# leader和follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度
syncLimit=2
# zookeeper机器列表,server.order这里的Order依据集群的机器个数依次进行递增
server.1=10.10.19.113:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.113:6888:7888
  • zookeeper3的data/myid配置如下:
echo '3' > data/myid
  1. 最后使用1.4的命令把三个zookeeper都启动,启动顺序随意没要求。
  2. 查看状态
# zookeeper3
[[email protected] bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/zookeeper3/bin/../conf/zoo.cfg
Mode: follower

# zookeeper1
[[email protected] bin]# cd ../../zookeeper1/bin/
[[email protected] bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/zookeeper1/bin/../conf/zoo.cfg
Mode: follower

# zookeeper2
[[email protected] bin]# cd ../../zookeeper2/bin/
[[email protected] bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/zookeeper2/bin/../conf/zoo.cfg
Mode: leader

2.3 集群模式

集群模式就是在不同主机上安装zookeeper然后组成集群的模式;下边以在10.10.19.112/113/114/三台主机为例。

将第1.1到1.3步中安装好的zookeeper打包复制到129和130上,并都解压到同样的目录下。

  1. 配置 112-zookeeper
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper/data
dataLogDir=/usr/local/zk/zookeeper/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.10.19.112:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.114:6888:7888
  • zookeeper1的data/myid配置如下:
echo '1' > data/myid
  1. 配置 113-zookeeper
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper/data
dataLogDir=/usr/local/zk/zookeeper/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.10.19.112:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.114:6888:7888
  • zookeeper1的data/myid配置如下:
echo '2' > data/myid
  1. 配置 114-zookeeper
  • 配置 zoo.cfg
tickTime=2000
dataDir=/usr/local/zk/zookeeper/data
dataLogDir=/usr/local/zk/zookeeper/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.10.19.112:2888:3888
server.2=10.10.19.113:4888:5888
server.3=10.10.19.114:6888:7888
  • zookeeper1的data/myid配置如下:
echo '3' > data/myid
  1. 最后使用2.1.4的命令把三个zookeeper都启动,启动顺序随意没要求。

参考文档

.

.

.

.

.

.《OVER》