Required Software
1) JDK>=1.6
2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines
3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘
数据和日志目录
1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日志文件。zk节点上的变动都会追加到事务日志文件。当日志增长到足够大的时候,zk会生成一个当前所有节点的快照文件。这个快照文件覆盖了之前所有事务日志。
2) Data Directory包括2种文件:1)myid :一个可识别的整数,代表zk的id;2)snapshot.<zxid> - holds the fuzzy snapshot of a data tree.快照文件的后缀zxid:zk的事务id,在快照开始时的最后一次提交的事务。
3) 日志目录Log Directory:保存zk事务日志文件。在zk的任务变更发生前,zk前保证这次变更的事务日志已经写入到非易失性存储上。每个快照开始时重新创建一个新的日志文件。日志文件的后缀是该日志文件中的一个事务的zxid。
4)zk默认不会删除旧的快照和事务日志(配置参数autopurge)。 PurgeTxnLog工具实现了一个简单的retention policy 。例子:保留最近几个快照及其对应日志,删除其他。建议保留至少3个(this provides 3 backups in the unlikely event a recent log has become corrupted). 命令:可以使用cron任务每天执行
java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>
3.4.0版本后支持自动清除快照和对应日志,配置参数autopurge.snapRetainCount和autopurge.purgeInterval.
Troubleshooting
Server not coming up because of file corruption
A server might not be able to read its database and fail to come up because of some file corruption in the transaction logs of the ZooKeeper server. You will see some IOException on loading ZooKeeper database. In such a case, make sure all the other servers in your ensemble are up and working. Use "stat" command on the command port to see if they are in good health. After you have verified that all the other servers of the ensemble are up, you can go ahead and clean the database of the corrupt server. Delete all the files in datadir/version-2 and datalogdir/version-2/. Restart the server.
注释内容参考其他博客,忘记出处,不妥告删
# ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。
tickTime=2000
# Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。
#如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。(No Java system property
initLimit=10
# 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
#如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。
#注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。(No Java system property)
syncLimit=5
# 存储快照文件内存数据库的snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。
dataDir=c:/temp/zookeeper/2181
#事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。
dataLogDir=c:/temp/zookeeper/2181
# 客户端连接server的端口,即对外服务端口
clientPort=2181
#单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60,如果设置为0,那么表明不作任何限制。
#请注意这个限制的使用范围,仅仅是单台客户端机器与单台ZK服务器之间的连接数限制,
#不是针对指定客户端IP,也不是ZK集群的连接数限制,也不是单台ZK对所有客户端的连接数限制。
maxClientCnxns=0
# server.A = B:C:D
# A表示这个是第几号服务器,并在dataDir路径下新建一个文件myid,里面写A
# B 是这个服务器的 ip 地址;
#C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
#D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader
#server.1=127.0.0.1:28881:38881
#server.2=127.0.0.1:28882:38882
#server.3=127.0.0.1:28883:38883
配置文件:zoo.cfg,至少包含:clientPort, dataDir, tickTime。有的参数可以使用java系统属性配置,key值是zookeeper.keyword
相关推荐
### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...
hadoop,hbase,zookeeper安装笔记hadoop,hbase,zookeeper安装笔记hadoop,hbase,zookeeper安装笔记
**尚硅谷2021 ZooKeeper笔记概述** ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和...
### ZooKeeper Administrator's Guide #### 1. 部署 本节包含了关于部署ZooKeeper的信息,并覆盖了以下主题: - **系统需求** - **集群(多服务器)设置** - **单服务器与开发者设置** 前两个部分假设您对在生产...
资源名称:zookeeper笔记和搭建 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Zookeeper是一种重要的分布式协调服务,尤其在处理高可用性、高性能的应用场景中。它最初设计的核心功能是提供分布式锁服务,但随着社区的发展,Zookeeper的功能得到了扩展,现在还用于配置维护、组服务、分布式消息...
ZooKeeper 学习笔记 ZooKeeper 是一个开源的分布式协调服务,由 Hadoop 的创始人 Doug Cutting 等人开发。它为分布式应用提供了一个高效、可靠的协调机制,帮助开发者快速构建高可用、可扩展的分布式系统。 ...
该项目为基于Java语言的Zookeeper学习笔记设计源码,总计包含20个文件,具体构成包括15个Java源文件、3个PNG图片文件以及1个Markdown文件。此外,项目还包含1个XML配置文件,适用于学习和实践Zookeeper相关知识。
本文适合但不限于软件开发人员阅读。本文档能够使阅读者对zookeeper有一个宏观且全面的了解,内容主要包含zookeeper架构、数据模型、读写及工作原理、典型应用场景、指令汇总等,
ZooKeeper笔记 ZooKeeper是一个分布式应用程序协调服务,提供了一个树形命名空间,用于存储和管理数据。 ZooKeeper主要用于分布式应用程序的配置管理、名称服务、分布式同步和提供组服务等。 ZooKeeper命令 * ...
### Zookeeper概述 Zookeeper是一种分布式协调服务框架,它的核心任务是为用户的分布式应用程序提供一系列的协调服务。简而言之,Zookeeper自身就是一个服务于其他分布式程序的服务平台。 #### Zookeeper的功能与...
dubbo-admin是管理dubbo的一个阿里的官方的war包,比较稳定的版本2.5.4版本,一直在使用,分享给大家:dubbo-admin-2.5.4.war,使用方式如下: 1、将war包放入tomcat中webapps下,删除其文件再unzip dubbo-admin-...
为了将`dubbo-admin`与Zookeeper连接,需要在Dubbo的配置中指定Zookeeper的地址。一旦配置正确,`dubbo-admin`就能实时展示Zookeeper中的服务信息,实现可视化管理。 总结一下,`dubbo-admin`和`zookeeper`的结合...
【Zookeeper学习笔记】 Zookeeper是一个分布式协调服务,它的核心目标是简化分布式环境下的数据管理与系统协调。作为Apache Hadoop和HBase的重要组件,Zookeeper提供了简单的原语集,支持分布式应用程序之间的通信...
Zookeeper笔记 Zookeeper是一个为分布式应用提供一致性服务的软件,提供配置服务、域名服务、分布式同步、组服务等。作为一个分布式系统的核心组件,Zookeeper 负责各个组件之间的协调服务。 Zookeeper 的安装 ...
### ZooKeeper概述 ZooKeeper,如同其名字所暗示的那样,扮演着“动物园管理员”的角色,主要负责管理和协调各种分布式应用程序(如Hadoop、Hive、Pig等)。它是一个开源的分布式协调服务框架,旨在帮助开发者解决...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
Zookeeper是Apache Hadoop项目下的一个子项目,它是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。Zookeeper的设计目标是为分布式应用提供一致性服务,它主要用来解决分布式...