BigData-Notes/notes/installation/Zookeeper单机环境和集群环境搭建.md
2019-04-17 22:52:33 +08:00

6.9 KiB
Raw Blame History

Zookeeper单机环境和集群环境搭建

一、单机环境搭建
        1.1 下载
        1.2 解压
        1.3 配置环境变量
        1.4 修改配置
        1.5 启动
        1.6 验证
二、集群环境搭建
        2.1 修改配置
        2.2 标识节点
        2.3 启动集群
        2.4 集群验证

一、单机环境搭建

1.1 下载

下载对应版本Zookeeper这里我下载的版本3.4.14。官方下载地址:https://archive.apache.org/dist/zookeeper/

# wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

1.2 解压

# tar -zxvf zookeeper-3.4.14.tar.gz

1.3 配置环境变量

# vim /etc/profile

添加环境变量:

export ZOOKEEPER_HOME=/usr/app/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH

使得配置的环境变量生效:

# source /etc/profile

1.4 修改配置

进入安装目录的conf/目录下,拷贝配置样本并进行修改

# cp zoo_sample.cfg  zoo.cfg

指定数据存储目录和日志文件目录(目录不用预先创建,程序会自动创建),修改后完整配置如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

配置参数说明:

  • tickTime用于计算的基础时间单元。比如session超时N*tickTime
  • initLimit:用于集群,允许从节点连接并同步到 master节点的初始化连接时间以tickTime的倍数来表示
  • syncLimit:用于集群, master主节点与从节点之间发送消息请求和应答时间长度心跳机制
  • dataDir:数据存储位置;
  • dataLogDir:日志目录;
  • clientPort用于客户端连接的端口默认2181

1.5 启动

由于已经配置过环境变量,直接使用下面命令启动即可

zkServer.sh start

1.6 验证

使用JPS验证进程是否已经启动出现QuorumPeerMain则代表启动成功

[root@hadoop001 bin]# jps
3814 QuorumPeerMain

二、集群环境搭建

为保证集群高可用Zookeeper集群的节点数最好是奇数最少有三个节点所以这里演示搭建一个三个节点的集群。

以下演示为单机上搭建集群对于Zookeeper多机集群搭建步骤和单机一致。

2.1 修改配置

拷贝三份zookeeper安装包分别修改其配置文件主要是修改dataDirdataLogDir以及配置集群信息。

如果是多台服务器则集群中每个节点通讯端口和选举端口可相同IP地址修改为每个节点所在主机IP即可。

zookeeper01配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-cluster/data/01
dataLogDir=/usr/local/zookeeper-cluster/log/01
clientPort=2181

# server.1 这个1是服务器的标识可以是任意有效数字标识这是第几个服务器节点这个标识要写到dataDir目录下面myid文件里
# 指名集群间通讯端口和选举端口
server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389

zookeeper02配置与zookeeper01相比只有dataLogDirdataLogDir不同:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-cluster/data/02
dataLogDir=/usr/local/zookeeper-cluster/log/02
clientPort=2181

server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389

zookeeper03配置与zookeeper0102相比只有dataLogDirdataLogDir不同:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-cluster/data/03
dataLogDir=/usr/local/zookeeper-cluster/log/03
clientPort=2181

server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389

为节省篇幅,以上配置文件均略去英文注释

2.2 标识节点

分别在三个节点的数据存储目录下新建myid文件,并写入对应的节点标识。

Zookeeper集群通过myid文件识别集群节点并通过上文配置的节点通信端口和选举端口来进行节点通信并选举出leader节点从而搭建出集群。

创建存储目录:

# dataDir
mkdir -vp  /usr/local/zookeeper-cluster/data/01
# dataDir
mkdir -vp  /usr/local/zookeeper-cluster/data/02
# dataDir
mkdir -vp  /usr/local/zookeeper-cluster/data/03

创建并写入节点标识到myid文件:

#server1
echo "1" > /usr/local/zookeeper-cluster/data/01/myid
#server2
echo "2" > /usr/local/zookeeper-cluster/data/02/myid
#server3
echo "3" > /usr/local/zookeeper-cluster/data/03/myid

2.3 启动集群

分别启动三个节点:

# 启动节点1
/usr/app/zookeeper-cluster/zookeeper01/bin/zkServer.sh start
# 启动节点2
/usr/app/zookeeper-cluster/zookeeper02/bin/zkServer.sh start
# 启动节点3
/usr/app/zookeeper-cluster/zookeeper03/bin/zkServer.sh start

2.4 集群验证

使用jps查看进程并且使用zkServer.sh status查看集群各个节点状态。如图三个节点进程均启动成功并且两个节点为follower节点一个节点为leader节点。