zookeeper配置文件详解及log日志文件
ttp://hadoop.apache.org/zookeeper/docs/r3.3.1/zookeeperAdmin.html#sc_configurationZooKeeper Server的行为受配置文件zoo.cfg的控制,zoo.cfg的设计目标是让所有服务器都可以使用相同的配置文件,如果需要使用不同的配置文件,需要保证关于cluster部分的参数相同。下面是具体的参数:最小必...
ttp://hadoop.apache.org/zookeeper/docs/r3.3.1/zookeeperAdmin.html#sc_configuration
ZooKeeper Server的行为受配置文件zoo.cfg的控制,zoo.cfg的设计目标是让所有服务器都可以使用相同的配置文件,如果需要使用不同的配置文件,需要保证关于cluster部分的参数相同。下面是具体的参数:
最小必要配置的参数
clientPort
服务的监听端口
dataDir
用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)
tickTime
心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
高级配置参数
dataLogDir
用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
globalOutstandingLimit
client请求队列的最大长度,防止内存溢出,默认值为1000
preAllocSize
预分配的Transaction log空间为block个proAllocSize KB,默认block为64M,一般不需要更改,除非snapshot过于频繁
snapCount
在snapCount个snapshot后写一次transaction log,默认值是100,000
traceFile
用于记录请求的log,打开会影响性能,用于debug的,最好不要定义
maxClientCnxns
最大并发客户端数,用于防止DOS的,默认值是10,设置为0是不加限制
clientPortBindAddress
3.3.0后新增参数,可是设置指定的client ip以及端口,不设置的话等于ANY:clientPort
minSessionTimeout
3.3.0后新增参数,最小的客户端session超时时间,默认值为2个tickTime,单位是毫秒
maxSessionTimeout
3.3.0后新增参数,最大的客户端session超时时间,默认值为20个tickTime,单位是毫秒
集群参数
electionAlg
用于选举的实现的参数,0为以原始的基于UDP的方式协作,1为不进行用户验证的基于UDP的快速选举,2为进行用户验证的基于UDP的快速选举,3为基于TCP的快速选举,默认值为3
initLimit
多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
leaderServes
leader是否接受客户端连接。默认值为yes。 leader负责协调更新。当更新吞吐量远高于读取吞吐量时,可以设置为不接受客户端连接,以便leader可以专注于同步协调工作。默认值是yes,说明leader可以接受客户端连接。(注意:当集群中有超过3台ZooKeeper Server时,强烈建议打开leader选举)
server.x=[hostname]:nnnnn[:nnnnn], etc
配置集群里面的主机信息,其中server.x的x要写在myid文件中,决定当前机器的id,第一个port用于连接leader,第二个用于leader选举。如果electionAlg为0,则不需要第二个port。hostname也可以填ip。
syncLimit
多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。
group.x=nnnnn[:nnnnn]
weight.x=nnnnn
这两个是用于集群分组的参数,暂时只有3台机器,没仔细研究,先给个例子看看吧
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
用于用户认证的选项
略
不安全选项
略
ZooKeeper采用log4j记录日志,log4j.properties文件在[zk_dir]/conf目录下,编辑[zk_dir]/conf/log4j.properties文件,按需要配置,这里给出一个在文件里记录DEBUG, INFO, ERROR等级,并且文件每天重命名一次的例子:
#
# ZooKeeper Logging Configuration
#
log4j.rootLogger=INFO, DEBUG, ERROR
# DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.Threshold=DEBUG
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd'.log'
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=/home/user/zk_logs/zk_debug.log
# INFO
log4j.appender.INFO=org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.Threshold=INFO
log4j.appender.INFO.layout=org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
log4j.appender.INFO.datePattern='.'yyyy-MM-dd'.log'
log4j.appender.INFO.append=true
log4j.appender.INFO.File=/home/user/zk_logs/zk_error.log
# ERROR
log4j.appender.ERROR=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.Threshold=ERROR
log4j.appender.ERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
log4j.appender.ERROR.datePattern='.'yyyy-MM-dd'.log'
log4j.appender.ERROR.append=true
log4j.appender.ERROR.File=/home/user/zk_logs/zk_error.log
更多推荐
所有评论(0)