irpas技术客

Linux 环境下,搭建 ZooKeeper 集群_长安明月_linux搭建zookeeper集群

网络 567

??《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 地址如下所示。 节点IPnode110.201.42.13node210.201.42.14node310.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,添加如下内容:

# 集群服务器配置,数字1/2/3需要与 myid 文件一致。右边两个端口,2888 表示数据同步和通信端口;3888 表示选举端口 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集群搭建》


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Linux #环境下ZooKeeper #zookeeper #集群