栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Linux 环境下,搭建 ZooKeeper 集群

Linux 环境下,搭建 ZooKeeper 集群

  《Linux 环境下,ZooKeeper 安装及运行(单机模式)》一文中总结了单机模式的 zookeeper 安装及运行方法,本文简单总结下如何搭建 zookeeper 集群。

一、环境准备 1.1 下载 zookeeper 的安装包

  笔者准备的 ZK 版本是 apache-zookeeper-3.6.2-bin.tar.gz,其他版本可以至官方网站 https://zookeeper.apache.org/releases.html 下载。

1.2 准备三台 Linux 服务器,IP 地址如下所示。
节点IP
node110.201.42.13
node210.201.42.14
node310.201.42.26
1.3 服务器安装 JDK 环境(版本需要 1.7 以上)

  安装方法见 《Linux yum 安装 JDK 的方法》或 《Linux 手动安装 JDK 的方法》。

二、安装 zookeeper

  分别在三台服务器上执行如下操作,搭建并配置 zookeeper 集群。

2.1 上传 zookeeper 安装包并解压

  分别将 apache-zookeeper-3.6.2-bin.tar.gz 文件上传到三台服务器的 /home/cpctest 目录下,然后解压:

[cpctest@vm-10-201-42-13 ~]$ pwd
/home/cpctest
[cpctest@vm-10-201-42-13 ~]$ tar zxvf apache-zookeeper-3.6.2-bin.tar.gz
2.2 创建数据文件存储目录:
[cpctest@vm-10-201-42-13 ~]$ pwd
/home/cpctest
[cpctest@vm-10-201-42-13 ~]$ mkdir zklogs
[cpctest@vm-10-201-42-13 ~]$ ls
apache-zookeeper-3.6.2-bin  apache-zookeeper-3.6.2-bin.tar.gz zklogs
2.3 配置 zoo.cfg

  将 zookeeper 的 /conf 路径下的配置文件 zoo_sample.cfg 拷贝为 zoo.cfg,添加如下内容:

server.1=10.201.42.13:2888:3888
server.2=10.201.42.14:2888:3888
server.3=10.201.42.26:2888:3888

  修改 zoo.cfg 中的 zookeeper 数据文件存放目录:

dataDir=/home/cpctest/zklogs

  修改完后的 zoo.cfg 文件为

[cpctest@vm-10-201-42-13 conf]$ pwd
/home/cpctest/apache-zookeeper-3.6.2-bin/conf 
[cpctest@vm-10-201-42-13 conf]$ cat 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=/home/cpctest/zklogs
# 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

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
server.1=10.201.42.13:2888:3888
server.2=10.201.42.14:2888:3888
server.3=10.201.42.26:2888:3888

  上述文件中的各个属性含义详见 《Linux 环境下,ZooKeeper 安装及运行(单机模式)》。

2.4 在服务器的数据存放目录 /home/cpctest/zklogs 下新建 myid 文件,并分别写入对应的 server.num 中的 num 数字,如在10.201.42.13 上将 server.1 中 1 写入 myid:
[cpctest@vm-10-201-42-13 zklogs]$ pwd
/home/cpctest/zklogs
[cpctest@vm-10-201-42-13 zklogs]$ echo 1 > myid
2.5 修改日志存放目录(可选):

  vi /home/cpctest/apache-zookeeper-3.6.2-bin/bin/zkEnv.sh,找到 ZOO_LOG_DIR 和 ZOO_LOG4J_PROP 位置

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
   # 配置zookeeper日志输出存放路径 
    ZOO_LOG_DIR="/home/cpctest/zklogs/applog/zookeeper"
fi

if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
   # 配置日志输出级别,这里把几个级别一并配上
    ZOO_LOG4J_PROP="INFO,CONSOLE,POLLINGFILE,TRACEFILE"
fi
2.6 编辑 /home/cpctest/apache-zookeeper-3.6.2-bin/conf 目录下的 log4j.properties,完成 log 的日志目录的修改:
# Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE, POLLINGFILE, TRACEFILE

zookeeper.console.threshold=INFO

zookeeper.log.dir=.
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=ERROR
zookeeper.log.maxfilesize=256MB
zookeeper.log.maxbackupindex=20

zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log

log4j.rootLogger=${zookeeper.root.logger}
三、分别启动三台 zookeeper 服务

  进入 /bin 路径下,执行如下命令,启动 zookeeper 服务:

[cpctest@vm-10-201-42-13 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/cpctest/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[cpctest@vm-10-201-42-13 bin]$ 

  其他 zookeeper 操作命令见 《Linux 环境下,ZooKeeper 安装及运行(单机模式)》。

  然后用 status 命令检查下状态,如果出现 Mode:leader 或者 Mode:follower 表示搭建成功。

[cpctest@vm-10-201-42-13 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/cpctest/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[cpctest@vm-10-201-42-14 bin]$ ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/cpctest/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[cpctest@vm-10-201-42-26 bin]$ ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/cpctest/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
四、验证是否搭建成功

  在命令行中输入:./zkCli.sh -server 127.0.0.1:2181,即可连接到本机 ZooKeeper 服务器。其他自动实现同步,客户端只需要和一台保持连接即可。出现如下语句表示链接成功:

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0] 
文章参考:

《Linux下zookeeper集群搭建》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号