《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
node1 10.201.42.13
node2 10.201.42.14
node3 10.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"
fiif [ "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, TRACEFILEzookeeper.console.threshold=INFOzookeeper.log.dir=.
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=ERROR
zookeeper.log.maxfilesize=256MB
zookeeper.log.maxbackupindex=20zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.loglog4j.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集群搭建》

Linux 环境下,搭建 ZooKeeper 集群相关推荐

  1. linux下搭建zookeeper集群

    linux下搭建zookeeper集群 1.准备 1.下载zookeeper压缩包 (注:下载3.4.14版本,3.5以上运行时会少jar包) 2.系统:centOS7 安装好java环境 3.将压缩 ...

  2. 阿里云环境下搭建HadoopHA集群

    阿里云环境下搭建HadoopHA集群 1. HadoopHA介绍 1.1 hadoop高可用集群的简介 ​ hadoop是一个海量数据存储和计算的平台,能够存储PB级以上的数据,并且利用MapRedu ...

  3. linux 使用 nginx 搭建 zookeeper 集群

    搭建 zookeeper 集群,笔者这里使用3台 centos7 服务器,它们 ip 分别是 192.168.0.125:192.168.0.123:192.168.0.117,后面简称 125,12 ...

  4. CentOS下搭建Zookeeper集群

    Zookeeper简介 ZooKeeper是一个开源的分布式应用协调服务,用于在分布式应用各个节点之间进行协调,并通过稳健的同步技术维护共享数据. 这里提到了一个新名词:"分布式应用&quo ...

  5. centos7环境下搭建storm集群

    前提: 使用的zookeeper集群为:11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 并且zookeeper集群已经启动成功:下面将 ...

  6. [Zookeeper基础]-- linux下搭建zookeeper集群

    安装zookeeper步骤 1\\准备机器h15.h16.h17 注意:机器之间需要两两免密码登陆 将zookeeper文件复制到h15\h16\h17上,并且解压 相关说明文档在解压文件路径下: z ...

  7. window下搭建zookeeper集群myid问题

    myid文件创建 Windows下搭建集群,会报如下一个错误,读取不到serverid,报错信息说不是一个数字类型 最后发现是不能按照常规模式创建myid文件(按住Shift + Ctrl 键,点击鼠 ...

  8. 【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息

    如何仅使用一条ps命令便能获取到所有与RAC集群进程相关的信息.   从所使用的命令角度上看很简单,仅需使用ps命令结合grep命令便能实现.问题关键是需要确定检索哪些关键字. 1.与RAC集群有关的 ...

  9. Windows环境下安装HBase(Hadoop3.1.3、HBase2.2.5)与Linux环境下搭建HBase高可用集群

    Windows环境下安装HBase 下载HBase 官网: https://hbase.apache.org/downloads.html 不同版本集合:https://archive.apache. ...

  10. 微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群

    作者:高天赐 编辑:Irene Pulsar 是一个支持多租户的.高性能的消息中间件.上一篇我们介绍了如何在 Mac 上搭建 Pulsar 集群,本文详细介绍如何在 3 台 Linux 服务器上搭建 ...

最新文章

  1. 一个算法同时解决两大CV任务,让目标检测和实例分割互相帮助,地平线实习生论文被AAAI 2020收录...
  2. 第一批 | Share·2015产品经理O2O论坛免费票发放啦!
  3. Chrome和Firefox中安装Hackbar插件
  4. 梦世界服务器修改指令,我的世界梦世界有哪些指令必须知道 梦世界所有必须知道指令汇总...
  5. Docker+Redis镜像的原理以及部署安装(超详解附截图)
  6. Hibernate学习笔记(一)
  7. 0.IDA的反汇编算法方式
  8. python import sql脚本_13-模块介绍-import两种方式-py文件的两种用途-模块搜索路径-项目开发的目录规范...
  9. 升级npm之后,保存的位置仍然在C盘,不在自己规定的盘下
  10. LeetCode 47. Permutations II
  11. rap韵脚大全(包含各种诗词歌曲的韵脚等)
  12. 【愚公系列】2022年01月 Django商城项目10-首页-页面设计
  13. Linux下配置日志服务器
  14. 【C语言】充当右值时,数组名前加不加的区别
  15. window10 下载速度限制问题解决方案
  16. matlab怎么计算行列式,MATLAB计算行列式
  17. VMware虚拟机三种联网方式详解
  18. ADC芯片CS1180的读取转换错误的情况记录
  19. 读取xml文件转成ListT对象的两种方法
  20. linux gif录制工具,Linux下的GIF录制

热门文章

  1. python批量打印word_Python操作Word批量生成文章的方法
  2. JAVA以及常用开源框架读音发音和介绍
  3. mysql回显_SQL回显
  4. 如何用c语言读文件,如何用C语言读写文件
  5. GAN学习记录(四)——条件生成对抗网络CGAN
  6. 2.3、IPMP,PMP,PRINCE2
  7. 简历制作器App使用条款
  8. 《Redis视频教程》(p20)
  9. 常见的软件生命周期模型
  10. Shiro完整教程, 附带各种配置