`
邢邢色色
  • 浏览: 230588 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ZooKeeper学习之配置【2】存储配置

阅读更多

本文涵盖了更多的高级配置,包括了standalone模式和ensemble模式。不设置它们也能让ZooKeeper工作得很好,但是其中的一些应该需要好好配置一些(比如dataLogDir)。

 

preAllocSize

为每个事务日志文件预分配(preallocate)的大小,单位为kilobyte。(zookeeper.preAllocSize)

当开始写事务日志时,server每次都会分配这个配置项指定的大小的磁盘块。这样可以为文件系统减轻负担,这样就不用在更新元数据或者追加日志文件空间不够时申请新的磁盘块了。更重要的是,它最小化磁盘寻道的次数。

 

默认此配置项是64M。如果日志文件不会变得更大的话,可以减少这个配置项的值。因为在每一个快照结束时会开始生成一个新的日志文件,如果在两次快照的间隔期间的那个事务日志大小达不到64M的话,那么需要调低这个值,以免造成空间浪费。例如,如果我们每执行1000个事务就生成一次快照,一个事务的大小 平均为100字节,那么把preAllocSize配置成100KB就更合适。默认的preAllocSize的值对于“默认的snapCount值,事务大小 平均值大于512字节”的情况是适用的。

 

snapCount

在两次事务快照之间可执行事务的次数(zookeeper.snapCount)。

当一个ZooKeeper进程服务重启时,它需要恢复之前的状态。这里有2个关于时间的关键因素,一个是读取快照文件花费的时间,另一个是重做快照文件开始生成之后的事务日志的花费时间。经常做一下快照可以减少重做的事务日志的数据量。然而,做快照会对服务的性能有一定影响,即使快照是在一个后台线程去做的。

 

默认的配置值为100000,因为做快照会影响性能,所以最好不要让集群中的所有server同时做快照,只要不同时做快照,那就不会影响处理请求时间。基于这个原因,实际的事务次数是接近于实际的配置值的随机数。

 

注意如果马上要开始做快照的时候发现上一次快照还在执行中,那么就不会开启新的快照,会等待上一次快照结束,再开始新的一次快照。

 

autopurge.snapRetainCount

这是当在清理数据时需要保留的快照文件和事务日志文件的个数。快照和事务日志文件会被定期的清理,很明显,不能清空所有的快照文件,因为以后就不能恢复数据了。这个配置项最小的值为3,同时也是默认值。

 

autopurge.purgeInterval

指定了在2个清理数据间相隔的时间,单位为小时,如果设置为0,那么不会启动自动清理,你只能人工的通过调用zkCleanup.sh脚本来清理数据。

 

fsync.warningthresholdms

如果对磁盘做一次sync耗费的时间超过配置的值的话(单位为毫秒),会在日志中打印一次警告信息(fsync.warningthresholdms)。

 

server会在一个update的事务的ack之前做一个sync操作。如果sync这个系统调用花费了过多的时间,会严重的影响系统性能,默认为1000毫秒。

 

weight.x=n

这个配置项是跟分组配置一起使用的,当组成quorum时会给每一台server分配一个权重(weight)。当投票的时会使用这个值。集群中有时候只需要其中一些server来投票,比如选举leader和atomic broadcast协议。默认的权重为1。如果配置了分组但没有配置权重,那么每台server的权重都为1。

 

traceFile

设置这个选项的话,会把ZooKeeper的操作记录到一个trace文件中,文件的命名方式为File.year.month.day(requestTraceFile)。

 

通过这个文件可以追踪ZooKeeper执行的操作的细节。然而,为了打日志,必须序列化每个操作并写到磁盘。这会消耗CPU和磁盘。切记不要把这个日志打到事务日志的磁盘上。打印这个日志会扰动系统,但可以帮助我们重现问题。还有一点,traceFile的Java system property没有zookeeper前缀。

分享到:
评论

相关推荐

    Zookeeper_安装和配置

    - `dataDir`:Zookeeper 保存数据的目录,用于存储服务器状态信息。 - `dataLogDir`(可选):日志目录,如果不设置则默认和 `dataDir` 相同。 - `clientPort`:客户端连接 Zookeeper 服务器的端口号。 4. **启动...

    大数据技术基础实验报告-Zookeeper的安装配置和应用实践.doc

    2. **端口冲突**:如果8080端口被其他服务占用(如Tomcat),需要修改Zookeeper配置文件`zoo.cfg`中的`admin.serverPort`,设置为未使用的端口号。 3. **启动失败**:可能由于下载了源码包而非可执行文件包导致。...

    基于ZooKeeper的配置信息存储方案的设计与实现

    ZooKeeper的配置信息存储方案通常会设计一个分层的数据模型,使用节点(node)来存储配置信息。配置信息被组织成一个树形结构,每个节点可以有子节点,子节点的数据会被父节点聚合。客户端可以监听节点的变化,一旦...

    Zookeeper 安装和配置

    1. **dataDir**:设置 Zookeeper 存储数据的目录,即我们之前创建的 `/var/lib/zookeeper`。 2. **clientPort**:客户端连接 Zookeeper 服务器的端口,默认为 2181。 3. **tickTime**:基础时间单位,用于心跳检测、...

    ZooKeeper集群安装配置

    ZooKeeper 集群安装配置 ZooKeeper 是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护...

    zookeeper集群配置详解

    在Linux集群环境中搭建Zookeeper集群是一个涉及到多台服务器间协调工作的复杂过程,需要对Zookeeper的工作原理和配置有深入的了解。本篇详细阐述了从下载安装到集群配置的全过程。 首先,Zookeeper集群部署的前提...

    zookeeper 单机集群配置

    总结一下,ZooKeeper单机集群配置主要包括下载与解压、环境变量配置、ZooKeeper配置文件修改、初始化数据目录、启动ZooKeeper服务以及测试服务。在Java Dubbo项目中,ZooKeeper发挥着关键的协调作用,使得服务之间的...

    zookeeper分布式集群配置

    学习Zookeeper的操作和命令,可以使用Zookeeper提供的命令行工具`bin/zkCli.sh`。常用命令包括: 1. `ls /`:列出根目录下的节点。 2. `create /test "Hello, Zookeeper!"`:创建一个新的节点。 3. `get /test`:...

    zookeeper集群+配置手册

    文件列表中的`zookeeper2`、`zookeeper3`、`zookeeper1`可能分别代表这三个节点的配置文件或数据目录。每个节点都需要安装Zookeeper,并配置相应的服务器设置。 1. **安装Zookeeper** 在每个节点上,你需要下载...

    zookeeper配置内容导入导出工具

    一款好用的zookeeper配置内容导入导出工具,适用平台是windows,但是也可以修改run.bat为shell脚本,适合linux。 带图形界面,修改config中的config.xml,添加需要管理的zookeeper地址信息,同时可以定义两个用户...

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    ZooKeeper是一款广泛使用的分布式协调服务,它可以存储和管理配置信息,提供分布式锁、服务发现等功能。将ZooKeeper与`PropertyPlaceholderConfigurer`结合,可以实现远程配置读取,使得系统能在运行时动态获取和...

    zookeeper配置.docx

    * `dataDir`:Zookeeper 的数据目录,用于存储 Zookeeper 的数据。 * `server.A=B:C:D`:配置服务器列表,A 是服务器的编号,B 是服务器的地址,C 是服务器的 Follower 端口,D 是服务器的 Leader 选举端口。 例如...

    zookeeper配置文件.zip

    压缩包"zookeeper配置文件.zip"包含了四个配置文件:zoo4.cfg、zoo3.cfg、zoo1.cfg和zoo2.cfg,这些文件可能分别对应于一个Zookeeper集群中的四个节点。每个节点的配置文件都需要根据其角色和环境进行定制。 配置...

    hadoop+HA+zookeeper+hbase配置文件

    1. `server.x`: 配置Zookeeper集群的服务器列表,x代表服务器编号,每个服务器需配置IP和端口。 2. `tickTime`: 设置Zookeeper服务器的基本时间单位,通常为2000毫秒。 3. `dataDir`: 指定每个Zookeeper服务器的数据...

    zookeeper配置详解

    ### Zookeeper配置详解 Zookeeper是一款分布式的、开放源码的协调服务,它为分布式应用提供一致性服务。在分布式环境中,Zookeeper可以帮助解决各种复杂的分布式问题,如:配置管理、命名服务、集群管理等。本篇...

    hbase配置内置的zookeeper

    ### HBase 配置内置 ZooKeeper 的详细步骤与解析 #### 一、配置背景与目的 在 HBase 的部署环境中,ZooKeeper 起着非常重要的作用,它主要用于协调集群中的各个节点,并且管理 HBase 的元数据。通常情况下,HBase ...

    Zookeeper单机及集群安装配置

    Zookeeper的设计目标之一就是易于使用,通过类似于文件系统的目录树结构来组织数据。 #### Zookeeper的关键特性: - **一致性**:对于所有成功的写操作,在所有服务器上的结果是一致的。 - **原子性**:所有的写...

    zookeeper增加权限登录验证

    2.然后,在 ZooKeeper 的 bin 目录下执行以下命令,创建一个名为 `extends` 的节点:`./zkCli.sh -server <ip> create /zookeeper/extends 1` 3.接着,创建一个名为 `skip_limited_ip` 的节点:`./zkCli.sh -server ...

    zookeeper伪集群配置

    Zookeeper伪集群配置详解 Zookeeper,作为一款分布式协调服务,广泛应用于大数据、云计算和分布式应用领域。在实际部署中,通常会采用集群模式以确保高可用性和数据一致性。"Zookeeper伪集群"配置,是针对单机环境...

Global site tag (gtag.js) - Google Analytics