在配置ZooKeeper配置文件时,有些参数是必需的,有些参数是可选的,这些必需的参数构成了Zookeeper配置文件的最低配置要求,如果需要对ZooKeeper进行更详细的配置,可以参考以下内容:
1、最低配置
以下是ZooKeeper配置文件中必需的最低配置参数:
1)clientPort:监听客户端连接的接口
2)dataDir:存储内存中数据快照的位置
3)tickTime:基本事件单元,以毫秒为单位,用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的tickTime
注意:应该谨慎选择日志存放的位置,使用专用的日志存储设备可以大大提高系统的性能,如果将日志存储在比较繁忙的设备上,那么会很大程度上影响设备的性能。
2、高级配置
以下是ZooKeeper高级配置要求中可选的参数,用户可以根据以下参数更好地规范ZooKeeper的行为:
1)dataLogDir
该参数要求管理机器将日志写到【dataLogDir】指定的目录中,而不是【dataDir】所指定的目录,这允许使用一个专用的日志设备,避免了日志和快照的竞争,配置如下:
# the location of log file
dataLogDir=/home/hadoop/zookeeper/zkDataLog
2)maxClientCnxns
该参数限制连接到ZooKeeper的客户端的数量,并且限制并发连接的数量,它通过IP地址来区分不同的客户端。该参数设置可以阻止某些类别的Dos攻击,如果将它设置为0或不设置,则会取消对并发连接数的限制。配置如下:
# set maxClientCnxns
maxClientCnxns=100
3)minSessionTimeout和maxSessionTimeout
该参数表示会话的最小超时时间和最大超时时间,默认情况下最小会话超时时间为2倍的tickTime,最大会话超时间为20倍的tickTime。
# set minSessionTimeout
minSessionTimeout=1000
# set maxSessionTimeout
maxSessionTimeout=10000
注意:如果会话超时时间设置太小的话,很可能会话刚刚建立就由于超时时间而不得不退出,一般情况下,不能将超时时间设置的比tickTime还小
3、集群配置
1)initLimit
该参数表示允许follower(相对于leader(领导者)而言的“客户端”,简称“跟随者”)连接并同步到leader(领导者)的初始化连接时间,它是以tickTime的倍数来表示的,当连接时间超过设置倍数的tickTime时间时,则连接失败。
2)syncLimit
该参数表示leader(领导者)和follower(跟随者)之间发送消息时请求和应答的时间长度,如果follower(跟随者)在设置的时间内不能与leader(领导者)通信,那么此follower(跟随者)将会被丢弃。