zookeeper安装以及配置和注意事项

简介:

1,安装 

    

1
2
3
4
wget 
tar  zxvf zookeeper-3.4.9. tar .gz 
cd  zookeeper-3.4.9 /conf
cp  zoo_sample.cfg zoo.cfg

    修改zoo.cfg配置文件

    如下

1
2
3
4
5
6
7
8
9
10
11
12
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /opt/zookeeper/zookeeper-3 .4.9 /data
dataLogDir= /opt/zookeeper/zookeeper-3 .4.9 /logs
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=zk1:2888:3888:observer
server.2=zk2:2888:3888 
server.3=zk3:2888:3888
server.4=zk4:2888:3888

    编辑环境变量vim /etc/profile

 

1
2
3
export  ZOOKEEPER_HOME= /opt/zookeeper/zookeeper-3 .4.9/
export  PATH=$ZOOKEEPER_HOME /bin :$PATH
export  PATH

    添加myid 文件

    在dataDir目录下,添加myid,文件内容要与配置文件中server.1的数字一样,仅仅是数字

 安装java8

1
yum  install  java1.8

    启动zookeeper,并查看状态

1
2
zkServer.sh start
zkServer.sh status

2,集群配置注意事项

    一般来讲,3到5个zookeeper投票者(leader,follower),必须是单数,因为数量过半才能保证正常运行,公式N=2F+1  其中F是可以容错的数量

    配置observer(观察者)(跟follower没什么区别,只是不参与投票),为了减少选举过程中和资源,一般客户端都是连接observer,

    配置如下:

    要指定相关的机器是observer,并且在集群配置里注明   

1
2
peerType=observer
server.1=zk1:2888:3888:observer

3,内存

zk在读写数据的时候,不要用swap交换分区,因为zookeeper都是把数据放在内存中,如果发生和磁盘交换的话,性能会大打折扣,修改启动脚本,配置jvm,配置原则物理内存的80%

    vim zkServer.sh

    

case $1 in

start)

    echo  -n "Starting zookeeper ... "

    if [ -f "$ZOOPIDFILE" ]; then

      if kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; then

         echo $command already running as process `cat "$ZOOPIDFILE"`.

         exit 0

      fi

    fi

    nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \

    -cp "$CLASSPATH" $JVMFLAGS -Xmx512m -Xms512m $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

4,磁盘

zk 对磁盘要求比较高,因为会做磁盘镜像备份snapshot到磁盘,第一要用高速磁盘,第二要定期处理,虽然配置里有自动清理,但是会遇到zk使用高峰,建议自己写crontab来定期清理

1
2
autopurge.snapRetainCount=3 #保留最新的3个镜像数据
autopurge.purgeInterval=1 #每隔1小时清理一次

5,最后说下投票机制

    当有节点宕机了,所有服务都将进入选举模式,先断掉连接,然后开始选举,过程是server1挂了,server2 server3进入选举,每个server都会先投自己,选票结构(id,zxid),那么server2(2,0),server3(3,0),然后再把自己的选票发给所有的server,当每个server收到别人发来的选票会进行对比,对比顺序是先从zxid 开始(zxid是代表了数据的新旧,比如3>2,那么3就是最新的),如果zxid相同,在对比id,这是server2收到来自server3的选票(3,0),zxid相同,但是id比自己大,这是server2会更新自己的选票server2(3,0),再发给所有的server,进入下一轮选举,这是server3(3,0),没变化,所以不用更新,server2(3,0),那么这时server3变成leader,如果参与投票的机器比较多,那么就按照这个机制进行多轮投票


运维经验,这里有个问题,如果在zk宕机选举过程中,clint不断的尝试重新,会导致zk进入死循环,因为选举的第一步就是先断掉所有连接,所以,客户端要用调用的方式,而不是无限的重新连接,或者客户端只连接observer(观察者),因为observer不参与投票,但是leader和follower在正常的投票,一旦新的leader被选出来,那么就不会有无线重新连接的情况出现










本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/1923341 ,如需转载请自行联系原作者






相关文章
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
646 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
453 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
296 1
|
Java 网络安全
zookeeper的环境搭建和配置
本文介绍了如何在多台节点上搭建和配置Zookeeper环境。内容包括Zookeeper的下载、解压、环境变量配置、配置文件修改、zkdata目录创建、myid文件设置,以及将Zookeeper及其配置文件复制到其他节点。还提供了运行测试的命令,包括启动、状态检查和停止Zookeeper服务。
zookeeper的环境搭建和配置
|
人工智能 Java 测试技术
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
165 2
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
254 0
|
Docker 容器
Docker 安装 Zookeeper
Docker 安装 Zookeeper
339 2
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
520 3
|
API
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
185 2