ZooKeeper Administrator's Guide

来源:互联网 发布:纱线捻度的测定数据 编辑:程序博客网 时间:2024/06/05 20:48

1、清理Zookeeper日志、镜像文件

       默认配置下,Zookeeper不会清楚旧的日志、节点镜像文件,存在一种危险,随着日志文件大小的增长,Zookeeper所有节点状态数据镜像将写入文件系统,这个文件系统会取代之前的日志文件。

      可采用一个定时任务,执行以下代码,将最近count个镜像文件保存,删除count数以前镜像文件,其中<count>必须大于3.

 java -cp zookeeper.jar:lib/slf4j-api-1.7.5.jar:lib/slf4j-log4j12-1.7.5.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>

    3.4.0 版本之后可以在zoo.cfg中配置镜像保持数量以及清除周期。配置项如下:

         parametersautopurge.snapRetainCount = 

autopurge.purgeInterval=

当事物日志文件损坏导致server启动不起来时,可通过命令stat查看其它server状态,在其它server正常其中之后,可以删除datadir/version-2 和datalogdir/version-2

/目录,然后重启server。

2、Zookeeper 日志log配置 

     配置文件位置 /conf/log4j.properties 

3、Zookeeper配置

  基本配置:

1)clientPort  server端口

2)dataDir   内存数据库镜像存储地址,如果没有特殊声明也将存储数据库更新事物日志。

3)tickTime  心跳周期,基本周期单位,如session过期时间。

  高级配置:

1)dataLogDir  事物日志文件存储地址,可提供专门log存储设备,以减少与镜像文件存储的竞争。

2) globalOutstandingLimit 限制client提交request 个数,缺省值1000.

3)preAllocSize 设置事物日志文件存储大小,缺省为64M。

4)snapCount  设置节点镜像文件存储大小,缺省为100,000,当满足大小后,将再创建日志文件存储日志数据。

5)traceFile  ruquests存储文件。

6)maxClientCnxns  最大并发数据量,缺省大小60。

7)clientPortAddress 限制可连接server的client地址。

8)minSessionTimeout  最小session过期时间,缺省为2倍的tickTime。

9)maxSessionTimeout  最大session过期时间,缺省为20倍的tickTime。

10)fsync.warningthresholdms  报警信息写入日志文件门限,缺省为每秒1000条。

11)autopurge.snapRetainCount  可保存最近镜像文件个数,最小为3,缺省值为3。

12)autopurge.purgeInterval   定时清除日志周期单位为小时,缺省为0,必须为整数。

13)syncEnabled 是否根据日志文件快速回复server。

集群配置参数:

1)electionAlg  leader选取算法实现设置,现在可选择值为3,给予TCP的快速选择算法。0,1,2已过期。

2)initLimit  设置followers连接和同步leader时间。单位tickTime。

3)leaderServes 设置leader是否可接受client连接,当高并发的数据协调更新时,可设置为false。

4)server.x=[hostname]:nnnnn[:nnnnn], etc

列表配置组成server ensembel。通过data目录下的myid文件标识不同server,文件存储这server的号。

第一个nnnnn 端口为followers连接leader端口,第二个nnnnn端口为leader连接端口。连接端口只对electionAlg is 1, 2, or 3 (default).有效。

同一机器上测试不同server,必须设置不同nnnn端口。

5) syncLimit   followers同步leader时间设置,单位tickTime。

6)group.x=nnnnn[:nnnnn]

     weight.x=nnnnn server权重系数,将server进行分组。
         示例:
    group.1=1:2:3    group.2=4:5:6    group.3=7:8:9       weight.1=1    weight.2=1    weight.3=1    weight.4=1    weight.5=1    weight.6=1    weight.7=1    weight.8=1    weight.9=1

7)cnxTimeout  ,针对electionAlg=3有效,leader选取通知连接过期时间,缺省5秒。

8)standaloneEnabled  设置是否为单机模式。

认证
1)zookeeper.DigestAuthenticationProvider.superDigest 缺省为false,当验证为super时,对节点的访问不需要进行ACL验证。

  org.apache.zookeeper.server.auth.DigestAuthenticationProvider 可以提供认证方法,通过字符串super:<password>

其它
1)Read Only Mode Server 设置sever只读模式。

不安全配置

1)forceSync  设置更新操作同步到日志文件中。

2)jute.maxbuffer: 节点数据最大存储值,缺省为0xfffff,低于1M。

3)skipACL 设置节点是否进行权限ACL检查。

4)quorumListenOnAllIPs server将监听可获取IP地址,不仅仅是配置的client的地址。

设置不创建data文件,可通过设置环境变量ZOO_DATADIR_AUTOCREATE_DISABLE =1,或者命令行 zkServer -Dzookeeper.datadir.autocreate=false,命令行

下测试不可用。配置文件可以zookeeper.datadir.autocreate=false

0 0