1-8 zk相关配置详解
1 zk配置文件zoo.cfg说明:
tickTime: ZooKeeper中使用的基本时间单元, 以毫秒为单位, 默认值是2000。它用来调节心跳和超时。例如, 默认的会话超时时间是两倍的tickTime。
initLimit: 默认值是10, 即tickTime属性值的10倍。它用于配置允许followers连接并同步到 leader的最大时间。如果ZooKeeper管理的数据量很大的话可以增加这个值。
syncLimit: 默认值是5,即tickTime属性值的5倍。它用于配置leader和followers间进行心跳检测的最大延迟时间。如果在设置的时间内followers无法与leader进行通信,那么 followers 将会被丢弃。
dataDir: ZooKeeper用来存储内存数据库快照的目录,并且除非指定其它目录,否则数据库更新的事务日志也将会存储在该目录下。建议配置dataLogDir 参数来指定ZooKeeper事务日志的存储目录。
clientPort: 服务器监听客户端连接的端口,也即客户端尝试连接的端口,默认值是 2181。
maxClientCnxns: 在socket级别限制单个客户端与单台服务器之前的并发连接数量,可以通过 IP 地址来区分不同的客户端。它用来防止某种类型的DoS攻击,包括文件描述符耗尽。默认值是60。将其设置为0将完全移除并发连接数的限制。
autopurge.snapRetainCount: 配置ZooKeeper在自动清理的时候需要保留的数据文件快照的数量和对应的事务日志文件, 默认值是 3。
autopurge.purgeInterval: 和参数 autopurge.snapRetainCount配套使用,用于配置 ZooKeeper自动清理文件的频率, 默认值是1, 即默认开启自动清理功能, 设置为0 则表示禁用自动清理功能
2 其它相关配置:
2.1 设置jvm
bin目录下的zkEnv.sh会读conf目录下的所有配置,因此在conf目录下创建java.env文件,在该文件中配置jvm参数
export JVMFLAGS="-Xms1024m -Xmx1024m $JVMFLAGS"
2.2 设置zookeeper的日志
按天出zookeeper日志,避免zookeeper.out文件过大。
zkEnv.sh文件日志输出方式从CONSOLE改为ROLLINGFILE;
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
# ZOO_LOG4J_PROP="INFO,CONSOLE"
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
conf/log4j.properties设置为按天生成文件DailyRollingFileAppender
#zookeeper.root.logger=INFO, CONSOLE
zookeeper.root.logger=INFO, ROLLINGFIL
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.DatePattern='.'yyyy-MM-dd
# Max log file size of 10MB
#log4j.appender.ROLLINGFILE.MaxFileSize=10MB
3 配置zookeeper开机自启:
cd /etc/init.d/目录下,创建zookeeper文件
vim zookeeper
#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_131
export PATH=${JAVA_HOME}/bin:$PATH
export ZOOKEEPER_HOME=/root/hdfs/zookeeper-3.3.5
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
case $1 in
start)
sh /root/hdfs/zookeeper-3.3.5/bin/zkServer.sh start
;;
stop)
sh /root/hdfs/zookeeper-3.3.5/bin/zkServer.sh stop
;;
status)
sh /root/hdfs/zookeeper-3.3.5/bin/zkServer.sh status
;;
restart)
sh /root/hdfs/zookeeper-3.3.5/bin/zkServer.sh restart
;;
*)
echo "require start|stop|status|restart"
;;
esac
添加权限:
chmod +x zookeeper
配置成服务:
chkconfig --add zookeeper
开机启动:
chkconfig zookeeper on
启动:
service zookeeper start
查看状态:
service zookeeper status