zookeeper配置信息和工具类学习

 

1.  删除日志方法和快照文件方法

1》自动删除日子功能

java -Djava.ext.dirs=lib org.apache.zookeeper.server.PurgeTxnLog log_path snap_path -n 10

log_path: 日志的路径

扫描二维码关注公众号,回复: 267392 查看本文章

snap_path:数据快照路径

其中-n 表示要保留多少个文件,不能低于3本例表示10条数据

Lib :表示 jar包库路径

实例:

java -Djava.ext.dirs=lib org.apache.zookeeper.server.PurgeTxnLog /usr/zookeeper-3.4.6_2/data /usr/zookeeper-3.4.6_2/logs -n

2》己编写脚本删除 日志和快照数据

Vi deleteLogAndSnapshot.sh

#!/bin/bash
#snapshot file dir
dataDir=/usr/zookeeper/data/snapshot/version-2
#tran log dir
dataLogDir=/usr/zookeeper/log/snapshot/version-2
#zk log dir
#Leave 10 files
count=10
count=$[$count+1]
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f
加入定时任务:

crontab –e

2 2 * * * /usr/zookeeper/bin/deleteLogAndSnapshot.sh > /dev/null 2>&1

cron文件语法:

分 小时 日 月 星期 命令

0-59 0-23 1-31 1-12 0-6 command

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
  crontab -l //列出某个用户cron服务的详细内容
  crontab -r //删除没个用户的cron服务
  crontab -e //编辑某个用户的cron服务
  比如说root查看自己的cron设置:crontab -u root -l
  再例如,root想删除fred的cron设置:crontab -u fred -r
  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

3》从3.4.0开始,zookeeper在zoo.cfg中提供了自动清理snapshot和事务日志的功能,通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。这两个参数都是在zoo.cfg中配置的:
autopurge.purgeInterval  这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。
autopurge.snapRetainCount 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。

2.  设置zookeeper 内存

zookeeper/bin/zkEnv.sh

安装的时候这个路径下没有有java.env文件,需要自己新建一个:

vi java.env

java.env文件内容如下:

#!/bin/sh

export JAVA_HOME=/usr/java/jdk

# heap size MUST be modified according to cluster environment

export JVMFLAGS="-Xms512m -Xmx1024m $JVMFLAGS"

对于内存的分配,还是根据项目和机器情况而定。如果内存够用,适当的大点可以提升zk性能

3. zookeeper 命令

Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

 

4. zookeeper 查看日志命令

java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.9.jar  org.apache.zookeeper.server.LogFormatter   ../Data/datalog/version-2/log.1

进入lib

java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar  org.apache.zookeeper.server.LogFormatter   ../logs/version-2/log.dc81

5. zoo.cfg 参数说明:

 

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

#保存快照文件

dataDir=/usr/zookeeper-3.4.6_2/data

### log file 保存日志文件

dataLogDir=/usr/zookeeper-3.4.6_2/logs

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir  保留快照文件个数 默认3

autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature 1小时清理一下日志

autopurge.purgeInterval=1

 

#2888,3888 are election port 设置集群通讯

 

#server.1=192.168.90.107:2889:3881

#server.2=192.168.6.24:2890:3882

 

#其中,

#2888 端口号是 zookeeper 服务之间通信的端口。

猜你喜欢

转载自gjp014.iteye.com/blog/2369665