zookeeper集群环境配置

环境参数如下:

服务器操作系统: Red Hat Enterpriser Linux 6.5 三台(IP地址分别为:192.168.5.128,192.168.5.129,192.168.5.130)

zookeeper版本: zookeeper-3.4.10

JDK版本: jdk1.8.0_144

现在先配置其中的一台服务器192.168.5.128

1 将zookeeper解压到/usr/目录下(/usr/zookeeper-3.4.10)

2 在/usr/zookeeper-3.4.10目录新新建logs,data文件夹作为zookeeper配置文件的一部分

3 在/usr/zookeeper-3.4.10/conf目录下新建配置文件zoo.cfg,可以把zoo_sample.cfg的内容复制到zoo.cfg

4 修改zoo.cfg文件的内容,配置文件内容如下:

 1 # The number of milliseconds of each tick
 2  tickTime=2000
 3 # The number of ticks that the initial
 4 # synchronization phase can take
 5  initLimit=10
 6 # The number of ticks that can pass between
 7 # sending a request and getting an acknowledgement
 8  syncLimit=5
 9 # the directory where the snapshot is stored.
10 # do not use /tmp for storage, /tmp here is just
11 # example sakes.
12  dataDir=/usr/zookeeper-3.4.10/data
13  dataLogDir=/usr/zookeeper-3.4.10/logs
14 # the port at which the clients will connect
15 clientPort=2888
16 server.0=192.168.5.128:8880:7770
17 server.1=192.168.5.129:8881:7771
18 server.2=192.168.5.130:8882:7772
19 # the maximum number of client connections.
20 # increase this if you need to handle more clients
21 #maxClientCnxns=60
22 #
23 # Be sure to read the maintenance section of the
24 # administrator guide before turning on autopurge.
25 #
26 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
27 #
28 # The number of snapshots to retain in dataDir
29 #autopurge.snapRetainCount=3
30 # Purge task interval in hours
31 # Set to "0" to disable auto purge feature
32 #autopurge.purgeInterval=1

参数说明如下:

?tickTime: zookeeper中使用的基本时间单位, 毫秒值.

?dataDir: 数据目录. 可以是任意目录.

?dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.

?clientPort: 监听client连接的端口号.

其中clientPort默认是2181,可以根据实际情况修改为没有使用的端口,server.0,server.1,server.2分别是三台服务器的标识,各个参数的意义如下:

以server.0=192.168.5.128:8880:7770为例,192.168.5.128是服务器IP地址,端口8880表示在zookeeper服务器之间及和leader连接时使用,端口7770是在进行leader选举时使用,其他的server.1,server2对应的意义和server.0完全一样

5 在/usr/zookeeper-3.4.10/data目录下新建myid文件,修改myid文件内容为0,这个0是和zoo.cfg文件里面的server.0中的0是对应的

6 以上步骤完成以后,将192.168.5.128服务器上整个的zookeeper-3.4.10目录分别上传到192.168.5.129,192.168.5.130两台服务器,命令如下:

1 scp -r /usr/zookeeper-3.4.10 [email protected]:/usr/zookeeper-3.4.19
2 scp -r /usr/zookeeper-3.4.10 [email protected]:/usr/zookeeper-3.4.19

7 上传完以后,分别修改192.168.5.129服务器上/usr/zookeeper-3.4.10/data目录下的myid文件内容为1,192.168.5.130服务器上/usr/zookeeper-3.4.10/data目录下的myid文件内容为2

8 测试,先通过命令./zkServer.sh start启动任意两台服务器,然后在命令行输入./zkServer.sh status检查服务启动情况如果出现如下截图的信息:

说明是服务器防火墙的问题,把服务器的防火墙都关掉,重新输入./zkServer.sh status,如果能看到如下信息证明zookeeper集群配置成功

先在192.168.5.128上输入./zkServer.sh start,截图如下:

然后再用相同的方式启动192.168.5.129上对应的服务,截图如下:

在192.168.5.128,192.168.5.130上分别执行./zkServer.sh status检查服务情况,截图分别如下

以上图片的展示信息说明服务器192.168.5.128在集群中承担的角色是follower,192.168.5.129在集群中承担的角色是leader

现在把192.168.5.130服务器上对应的服务启动起来,通过检查确认192.,168.5.130在集群中承担的角色也是follower

现在通过命令./zkServer.sh stop把服务器192.168.5.129的zookeeper服务停掉,然后再检查每台服务器成都的角色,发现此时,集群中的leader变成了192.168.5.130这台服务器

通过以上测试可以获取如下结论:

当zookeeper集群中存在多台服务器的时候,只要存活的机器数在总服务器数目半数以上就能够正常对外提供服务,当集群中对外提供服务的服务器只有2台的情况下,节点数大的服务器被选中为leader的几率会大(例如本文章中提到的当192.168.5.129服务器停掉后,只有192.168.5.128,192.168.5.130对外提供服务,在配置文件中这两台服务器对应的节点分别是server.0,server.1,所以zookeeper会把server.1节点选择为leader节点)

时间: 2024-10-08 08:19:46

zookeeper集群环境配置的相关文章

zookeeper集群环境搭建详细图文教程

zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装zookeeper 3. 解压zookeeper压缩包 单节点zookeeper配置 1. 配置zoo.cfg文件 2. 配置zookeeper的数据存储目录 3. 新建myid文件 4. 配置zookeeper集群节点 5. 启动zookeeper服务 6. 检查zookeeper服务是否成功启动

[转]ZooKeeper 集群环境搭建 (本机3个节点)

ZooKeeper 集群环境搭建 (本机3个节点) 是一个简单的分布式同步数据库(或者是小文件系统) --------------------------------------------------------1.建立目录server1server1/dataDirserver1/dataLogDirserver1/logsserver1/zookeeper3.4.6 server2server2/dataDirserver2/dataLogDirserver2/logsserver2/zo

shell 脚本实战笔记(6)--集群环境配置检测

1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟精干的团队还好, 对于不熟悉环境的小团队, 由于水平的参差不齐, 往往会导致不一致的环境. 因此无论如何, 写脚本进行自动化的配置和环境校验总是最佳实践. 2). 假设应用场景:*) 系统环境: 安装CDH5, 集群规模为16台机器, 每台机器16CPU, 内存16G, 2块SATA盘共500G,

[推荐]Hadoop+HBase+Zookeeper集群的配置

Hadoop+HBase+Zookeeper集群的配置  http://wenku.baidu.com/view/991258e881c758f5f61f67cc.html?re=view HDFS+MapReduce+Hive+HBase十分钟快速入门   http://wenku.baidu.com/view/7db2fcd276eeaeaad1f33055.html Hadoop+Zookeeper+HBase部署指南  http://wenku.baidu.com/view/02e4ad

cdh5+hive+zookeeper集群环境搭建

环境 1.centos6.5(64位) 机器规划及节点分布 主机 角色 节点 节点 节点 节点 节点 192.168.115.132 master namenode   journalnode zk hive 192.168.115.133 slave1 namenode datanode journalnode zk hive 192.168.115.134 slave2   datanode journalnode zk   目录设置 dfs.namenode.name.dir = file

centos7搭建zookeeper集群环境

搭建起一个zookeeper的集群环境,选择三台机器作为测试(zookeeper的集群环境节点数最好的是>=3且为奇数) 选用三台虚拟机机器(三台机器上需要配置好jdk环境): Node1:192.168.153.133 Node2:192.168.153.137 Node3:192.168.153.138 首先下载zookeeper的稳定版,地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeep

SpringBoot系列教程之Redis集群环境配置

之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和单机的有什么区别,又有什么需要注意的呢? 本篇将主要介绍SpringBoot项目整合redis集群,并针对这个过程中出现的问题进行说明,并给出相应的解决方案 I. 环境相关 首先需要安装redis集群环境,可以参考博文:redis-集群搭建手册 然后初始化springboot项目,对应的pom结构如

Hadoop全分布式集群环境配置

Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS

Zookeeper集群及配置

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 原理 ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才