【转】最新版zookeeper配置看这一篇就够了
【From】https://blog.csdn.net/yydriver/article/details/81107954
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yydriver/article/details/81107954
zookeeper
下载 download http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz 安装 解压 # tar -zxf zookeeper-3.4.12.tar.gz 移动 # mv zookeeper-3.4.6 /usr/local/zookeeper
配置
#进入zookeeper目录 cd /usr/local/zookeeper/ #新建日志文件夹 $ mkdir -p /var/zookeeper/data $ mkdir -p /var/zookeeper/datalogs $ mkdir -p /var/zookeeper/logs 准备配置文件 $ cd /conf $ mp zoo_sample.cfg zoo.cfg $ vi /conf/zoo.cfg
我的配置:
tickTime=2000 dataDir=/var/zookeeper/data dataLogDir=/var/zookeeper/datalogs clientPort=2181 autopurge.snapRetainCount=10 autopurge.purgeInterval=48
配置参数的含义:
ClientPort:zk服务器监听的端口,客户端通过该端口建立连接,每台zk服务器也允许设置为不同的值。默认配置文件设定的是2181,除非你有什么难言之隐否则不需要修改
dataDir:zk用于保存内存数据库的快照的目录,除非设置了dataLogDir,否则这个目录也用来保存更新数据库的事务日志。在生产环境使用的zk集群,强烈建议设置dataLogDir,让dataDir只存放快照,因为写快照的开销很低,这样dataDir就可以和其他日志目录的挂载点放在一起。
dataLogDir: zk的事务日志路径
tickTime:前面已提到过,zk使用的基本时间单位是tick,这个参数用于配置一个tick的长度,单位为毫秒,默认配置文件设定的是3000,除非你有什么难言之隐否则不需要修改
autopurge.snapRetainCount:3.4.0及之后版本zk提供了自动清理快照文件和事务日志文件的功能,该参数指定了保留文件的个数,默认为3,这里我设置为10.
autopurge.purgeInterval:和上一个参数配合使用,设置自动清理的频率,单位为小时,默认为0表示不清理,建议设为6或12之类的值。这里我设置了48,意思是48小时自动清理一次。
其他高级设置:
配置日志
关于zookeeper的日志:
zookeeper有三种日志:快照日志,事务日志,log4j日志
zoo.cfg中的dataDir是快照日志;datalogDir是事务日志;
log4j配置了集群的服务器日志:该日志的配置地址在conf/目录下的log4j.properties文件中,该文件中有一个配置项为“zookeeper.log.dir=.”,表示log4j日志文件在与执行程序(zkServer.sh)在同一目录下。当执行zkServer.sh时,在该文件夹下会产生zookeeper.out日志文件。
zookeeper默认将事务日志文件和快照日志文件都存储在dataDir对应的目录下。建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作是,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能,而且,可以允许将两类日志存在在不同的存储介质上,利用磁盘顺序写的特性,提高日志写入速度。
进入conf,修改log4j.properties
$ vi conf/log4j.properties #将以下配置: zookeeper.root.logger=INFO, CONSOLE log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender #修改为: zookeeper.root.logger=INFO, ROLLINGFILE log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
进入 zookeeper/bin目录,修改zkEnv.sh
$ vi /bin/zkEnv.sh ## 将以下配置: if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="." fi if [ "x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,CONSOLE" fi ## 修改为: if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="/var/local/zookeeper/logs" fi if [ "x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,ROLLINGFILE" fi
经过配置zoo.cfg,log4j.properties,zkEnv.sh后,我的zookeeper的几个日志目录如下:
数据快照日志
/zookeeper/data
事务日志
/zookeeper/datalogs
服务器日志
/zookeeper/logs
配置集群(缺)
运行zookeeper $ /usr/local/zookeeper/bin/zkServer.sh start # 遇到zookeeper_server.pid没有写权限,给这个目录加权限 $ sudo chown :kfk:kfk /var/zookeeper/data 使用zookeeper $ cd zookeeper/bin $ zookeeper-shell localhost:2181 #启动zookeeper-shell zookeeper-shell 命令 ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] #查看 delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] #获得路径下的内容 create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port 为当前用户配置alias cd ~ vi .bashrc # alias zookeeper_start='/usr/local/zookeeper/bin/zkServer.sh start' # alias zookeeper_stop='/usr/local/zookeeper/bin/zkServer.sh stop' source .bashrc
————————————————
版权声明:本文为CSDN博主「肖邦也没谱」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yydriver/article/details/81107954