Zookeeper 클 러 스 터 배치 및 사용
Zookeeper 는 두 가지 실행 모드 가 있 습 니 다.
독립 모드 (standalone mode): 한 서버 에서 만 실행 되 며 테스트 환경 에 적합 합 니 다. 복사 모드 (replicated mode): 한 클 러 스 터 에서 실행 되 며 생산 환경 에 적합 합 니 다. 이 컴퓨터 클 러 스 터 는 '집합체' (ensemble) 라 고 합 니 다.
복제 모드 의 Zookeeper 는 복 제 를 통 해 높 은 가용성 을 구현 합 니 다. 집합체 의 절반 이상 이 사용 가능 한 상태 라면 서 비 스 를 계속 할 수 있 습 니 다. 이것 은 Zookeeper 의 복사 정책 과 관련 이 있 습 니 다. Zookeeper 는 zno de 트 리 의 모든 변경 사항 을 집합체 의 절반 이 넘 는 기계 로 복사 할 수 있 도록 합 니 다. Zookeeper 서 비 스 는 두 가지 역할 이 있 습 니 다. 하 나 는 leader, 마이너스 입 니 다.책 쓰기 서비스 와 데이터 동기 화, 나머지 는 follower 입 니 다. 읽 기 서 비 스 를 제공 합 니 다. leader 가 효력 을 잃 으 면 follower 에서 새로운 leader 를 다시 선택 합 니 다. 전체 Zookeeper 클 러 스 터 모드 에서 전체 클 러 스 터 는 하나의 전체 입 니 다. 클 러 스 터 의 모든 Zookeeper 노드 에서 전체 클 러 스 터 의 서 비 스 를 공유 합 니 다.
:CentOS Linux release 7.3.1611 (Core)
Zookeeper: zookeeper - 3.4.12PP: 10.5.2.81 - 83Zookeeper 다운로드 주소:http://zookeeper.apache.org/releases.html#download
[root@zk-2-82-0001 soft]# tar -xvf zookeeper-3.4.12.tar.gz
[root@zk-2-82-0001 soft]# mv zookeeper-3.4.12 zookeeper
[root@zk-2-82-0001 soft]# mv zookeeper /app
[root@zk-2-82-0001 soft]# cd /app/zookeeper
[root@zk-2-82-0001 zookeeper]# mkdir data
[root@zk-2-82-0001 zookeeper]# mv conf/zoo_sample.cfg conf/zoo.cfg
[root@zk-2-82-0001 zookeeper]# vim conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000 //Zookeeper , tickTime , , session tickTime ,ZK 。
# The number of ticks that the initial
# synchronization phase can take
initLimit=10 // ( leader ) leader , tickTime , , 。 10. 。。 initLimit * tickTime 。
#LeaderServes Leader , Leader , 。
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5 // Leader Follower , , tickTime , syncLimit * tickTime , , 。 5. 。
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/app/zookeeper/data //Zookeeper , /tmp/zookeeper, , 。
dataLogDir=/app/zookeeper/logs // , dataDir。zookeeper , ZK , , ZK , , ZK 。dataLogDir (WAL), version-2 ( log.1 ), , ZK , 。 64M, 。 dataDir snapshot, 。 , dataDir dataLogDir , 。 ,ZK
# the port at which the clients will connect
clientPort=2181 //Zookeeper , 。
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60 ZK , , IP 。 0 。 , 。 60.
#minSessionTimeout=120 , tickTime 2 。 tickTime 。 ZK ZK , 。
#maxSessionTimeout=2400 , 20 。 tickTime 。 ZK ZK 。 , ZK 。 , 。
#
# 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
#autopurge.snapRetainCount=3 , , 3, 3 3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 , , 。 ZK , ZK , , , 2 , ZK , , ZK Linux 。0 。
#globalOutstandingLimit ZK , , , 。
#preAllocSize ZK , 64M
#snapCount , 10 。 10
#clientPortAddres ZK , IP 。
#fsync.warningthresholdms ZK , 。
#electionAlg Leader , , 。
#cnxTimeout Leader TCP , 5.
#forceSync ZK (LINUX ), YES。
#jute.maxbuffer , 1MB。 , Zookeeper
#skipACL ACL , no, acl 。
server.1=10.55.2.81:2888:3888
server.2=10.55.2.82:2888:3888
server.3=10.55.2.83:2888:3888
// server.n n , ;“=” IP , 2888 (follower) (leader) , leader , ; 3888 leader 。
2. 로그 설정
$ZK HOME / bin / zkEnv. sh 를 편집 하여 ZOO LOG DIR 설정 과 ZOO LOG4J PROP 의 위 치 를 찾 습 니 다 (대략 Line 56, Line 61).
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
# zookeeper
ZOO_LOG_DIR="/home/xxx/zookeeper-2181/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
# ,
ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE,TRACEFILE"
fi
Log4J 설정 파일 log4j. properties 를 편집 합 니 다. 이 부분 은 Log4J 설정 을 참고 합 니 다.
# Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE, ROLLINGFILE, TRACEFILE
zookeeper.console.threshold=INFO
zookeeper.log.dir=.
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=ERROR
zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log
log4j.rootLogger=${zookeeper.root.logger}
서버 상태: LOOKING: Leader 를 찾 습 니 다. 서버 에 이 상태 가 나타 나 면 현재 클 러 스 터 에 Leader 가 없다 고 생각 하기 때문에 선거 에 들 어가 야 합 니 다. FOLLOWING: 따 르 는 사람 상태, 현재 Follower 캐릭터 LEADING: Leader 상태, 현재 리더 각 색 OBSERVING: 관찰자 상태, 현재 서버 가 Observer 역할 임 을 나 타 냅 니 다.
3. myid 파일 을 추가 하면 zoo. cfg 설정 파일 을 수정 하 는 것 외 에 클 러 스 터 모드 에서 자신의 신분, 즉 자신의 ID 값 파일 myid 를 설정 합 니 다. 이 파일 은 zoo. cfg 에서 dataDir 가 지정 한 디 렉 터 리 에 있 습 니 다. 이 파일 에는 하나의 숫자 만 있 습 니 다. 이 숫자 는 server. n 의 n 과 일치 합 니 다. 이 값 범 위 는 1 - 255 사이 일 수 있 습 니 다. Zookeeper 가 시작 할 때 읽 습 니 다.파일, 안에 있 는 데이터 와 zoo. cfg 의 설정 정 보 를 비교 하여 그 server 인지 판단 합 니 다.
[root@zk-2-82-0001 zookeeper]# echo "2">data/myid
기타 두 노드 유사 4, jdk 설치
[root@zk-2-82-0001 soft]# rpm -ivh jdk-8u151-linux-x64.rpm
5. 서비스 시작
[root@zk-2-82-0001 zookeeper]# cd bin/
[root@zk-2-82-0001 bin]# ls
README.txt zkCleanup.sh zkCli.cmd zkCli.sh zkEnv.cmd zkEnv.sh zkServer.cmd zkServer.sh zookeeper.out
[root@zk-2-82-0001 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running. // , , pid , zookeeper.out
[root@zk-2-82-0001 bin]# rm -rf ../conf/zoo_sample.cfg
[root@zk-2-82-0001 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zk-2-82-0001 bin]#
jps - m 를 사용 하면 프로 세 스 를 조회 할 수 있 습 니 다. Zookeeper 의 프로 세 스 는 QuorumPeerMain 입 니 다.
[root@zk-2-82-0001 bin]# jps -m
1744 WrapperSimpleApp CloudResetPwdUpdateAgent
2528 QuorumPeerMain /app/zookeeper/bin/../conf/zoo.cfg
21745 Jps -m
[root@zk-2-82-0001 bin]#
6. 노드 상태 보기
[root@zk-2-82-0001 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@zk-2-82-0001 bin]#
[root@zk-2-81 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@zk-2-81 bin]#
[root@zk-2-82-0002 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@zk-2-82-0002 bin]#
로그
[root@zk-2-82-0001 bin]# tail -500f zookeeper.out
2018-06-21 15:24:59,618 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: /app/zookeeper/bin/../conf/zoo.cfg
2018-06-21 15:24:59,626 [myid:] - INFO [main:QuorumPeer$QuorumServer@184] - Resolved hostname: 10.55.2.81 to address: /10.55.2.81
2018-06-21 15:24:59,626 [myid:] - INFO [main:QuorumPeer$QuorumServer@184] - Resolved hostname: 10.55.2.83 to address: /10.55.2.83
2018-06-21 15:24:59,626 [myid:] - INFO [main:QuorumPeer$QuorumServer@184] - Resolved hostname: 10.55.2.82 to address: /10.55.2.82
2018-06-21 15:24:59,626 [myid:] - INFO [main:QuorumPeerConfig@398] - Defaulting to majority quorums
2018-06-21 15:24:59,628 [myid:2] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2018-06-21 15:24:59,628 [myid:2] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2018-06-21 15:24:59,628 [myid:2] - INFO [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2018-06-21 15:24:59,635 [myid:2] - INFO [main:QuorumPeerMain@130] - Starting quorum peer
2018-06-21 15:24:59,639 [myid:2] - INFO [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2018-06-21 15:24:59,642 [myid:2] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2018-06-21 15:24:59,646 [myid:2] - INFO [main:QuorumPeer@1158] - tickTime set to 2000
2018-06-21 15:24:59,646 [myid:2] - INFO [main:QuorumPeer@1204] - initLimit set to 10
7. ZooKeeper 접근
[root@zk-2-82-0001 bin]# ./zkCli.sh -server 10.55.2.82:2181 // loader ,
Connecting to 10.55.2.82:2181
2018-06-21 18:15:33,887 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
......
WATCHER::
WatchedEvent state:SyncConnected type:None path:null //
[zk: 10.55.2.82:2181(CONNECTED) 0] ls / // 、 , ls / , zookeeper 。
[zookeeper]
[zk: 10.55.2.82:2181(CONNECTED) 0] help //
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
[zk: 10.55.2.82(CONNECTED) 0] ls2 / // 、 ,
[zookeeper, 20180621]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x100000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
[zk: 10.55.2.82:2181(CONNECTED) 1] create /20180621 "201806211950" // , znode “ 20180621 ”
Created /20180621
[zk: 10.55.2.82:2181(CONNECTED) 2] ls /
[zookeeper, 20180621]
[zk: 10.55.2.82:2181(CONNECTED) 3] get /20180621 // , znode
201806211950
cZxid = 0x100000004
ctime = Thu Jun 21 19:50:05 CST 2018
mZxid = 0x100000004
mtime = Thu Jun 21 19:50:05 CST 2018
pZxid = 0x100000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0
[zk: 10.55.2.82(CONNECTED) 3] set /20180621 "justin 51cto" // , 20180621
cZxid = 0x100000004
ctime = Thu Jun 21 19:50:05 CST 2018
mZxid = 0x10000000b
mtime = Thu Jun 21 20:23:43 CST 2018
pZxid = 0x100000004
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0
[zk: 10.55.2.82(CONNECTED) 4] get /20180621
justin 51cto
cZxid = 0x100000004
ctime = Thu Jun 21 19:50:05 CST 2018
mZxid = 0x10000000b
mtime = Thu Jun 21 20:23:43 CST 2018
pZxid = 0x100000004
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0
[zk: 10.55.2.82(CONNECTED) 5] delete /20180621 // , znode ; ( ) :rmr
[zk: 10.55.2.82:2181(CONNECTED) 4] quit
Quitting...
2018-06-21 19:50:28,534 [myid:] - INFO [main:ZooKeeper@687] - Session: 0x200004654110000 closed
2018-06-21 19:50:28,535 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x200004654110000
[root@zk-2-82-0001 bin]#
이 때 다른 노드 에 로그 인하 면 볼 수 있 습 니 다. data 디 렉 터 리 에서 snapshot. 0: 메모리 에 데 이 터 를 저장 하 는 스냅 샷 입 니 다. zookeeper 서비스 가 시작 되 었 을 때 데이터 log. 100000001 을 복원 해 야 합 니 다. 로그 파일 은 기본적으로 데이터 디 렉 터 리 에 저 장 됩 니 다. 8. ssh 원 격 으로 Zookeeper 서 비 스 를 시작 합 니 다.
[root@zk-2-82-0001 bin]# ssh 10.55.2.81 "source /etc/profile;/app/zookeeper/bin/zkServer.sh status"
이렇게 하면 우 리 는 스 크 립 트 를 통 해 3 개의 노드 를 동시에 관리 할 수 있 습 니 다. 9, 4 자 명령 은 4 자 명령 을 통 해 서버 정 보 를 더욱 편리 하 게 얻 을 수 있 습 니 다. 4 자 명령 의 용법: echo 4 자 명령 | netcat localhost 2181, 자주 사용 하 는 4 자:
conf: Zookeeper 서버 설정 에 대한 자세 한 정 보 를 출력 합 니 다 cons: 서버 에 연 결 된 모든 클 라 이언 트 의 완전한 연결 / 세 션 에 대한 자세 한 정 보 를 출력 합 니 다. "수신 / 발송" 을 포함 합 니 다.패키지 수량, 세 션 ID, 작업 지연, 마지막 작업 수행 등 dump: 처리 되 지 않 은 세 션 과 임시 노드 envi 출력: 서버 실행 환경 에 대한 자세 한 정 보 를 출력 합 니 다 reqs: 처리 되 지 않 은 요청 을 출력 합 니 다 ruok: 서비스 가 올 바른 상태 인지 테스트 합 니 다. 만약 "imok" 으로 돌아 갑 니 다.그렇지 않 으 면 stat: 성능 과 연결 에 관 한 클 라 이언 트 의 목록 을 출력 합 니 다. (이 명령 을 통 해 노드 가 leader 인지 follower 인지 확인 할 수 있 습 니 다)wchs: 출력 서버 watch 의 상세 한 정보 wchc: session 을 통 해 서버 watch 의 상세 한 정 보 를 보 여 줍 니 다. 출력 은 watch 와 관련 된 세 션 의 목록 wchp 입 니 다. 경 로 를 통 해 서버 watch 의 상세 한 정 보 를 보 여 줍 니 다. session 과 관련 된 경로 mntr 를 출력 합 니 다. 일부 Zookeeper 가 실 행 될 때 정 보 를 출력 합 니 다. 이 반환 결 과 를 분석 하면 감독 할 수 있 습 니 다.제어 효과 netcat 다운로드 주소:http://sourceforge.net/projects/netcat/files/netcat/
[root@zk-2-82-0001 soft]# echo conf|netcat 10.55.2.81 2181
데이터 및 로그 유지보수
Zookeeper 의 데이터 파일 은 설정 에서 지정 한 dataDir 에 저 장 됩 니 다. 모든 데이터 파일 이름 은 snapshot 으로 시작 합 니 다. 모든 데이터 파일 은 zookeeper 의 특정한 시간 에 데이터 의 전체 스냅 샷 입 니 다. zookeeper 에서 데이터 에 대한 업데이트 작업 은 노드 생 성, 노드 내용 업데이트, 노드 삭제 등 을 포함 하여 트 랜 잭 션 로 그 를 기록 합 니 다. 클 라 이언 트 가 ZK 에 대한 업데이트 작업 은 영구적 이 며 영구적 이지 않 습 니 다.되 돌 릴 수 있 습 니 다. 이 를 위해 ZK 는 매번 업데이트 작업 을 트 랜 잭 션 로그 형식 으로 디스크 에 기록 합 니 다. 기록 에 성공 한 후에 야 클 라 이언 트 에 응답 합 니 다. zookeeper 는 몇 번 의 트 랜 잭 션 로그 (snapCount) 를 완성 합 니 다.나중에 스냅 샷 을 생 성 합 니 다. 현재 zk 의 모든 노드 상 태 를 하 드 디스크 에 파일 형식 으로 덤 프 하여 snapshot 파일 을 생 성 합 니 다. 이 곳 의 트 랜 잭 션 횟수 는 설정 할 수 있 습 니 다. 기본 값 은 100000 개 입 니 다. zookeeper 서버 에 서 는 트 랜 잭 션 로그, 스냅 샷 로그, log4j 로그 세 가지 로 그 를 생 성 합 니 다.
트 랜 잭 션 로 그 는 zookeeper 시스템 이 정상적으로 실행 되 는 과정 에서 모든 업데이트 작업 에 대해 클 라 이언 트 에 게 '업데이트 성공' 을 되 돌려 주 는 것 을 말 합 니 다.응답 하기 전에 zookeeper 는 이번 업데이트 작업 의 트 랜 잭 션 로 그 를 디스크 에 기록 할 것 을 보증 합 니 다. 그래 야 전체 업데이트 작업 이 적 용 됩 니 다. dataLogDir 가 지정 한 디 렉 터 리 에 폴 더 version - 2 가 존재 합 니 다. 이 폴 더 에는 사물 로그 파일 이 저 장 됩 니 다.
[root@zk-2-82-0001 data]# cd version-2/
[root@zk-2-82-0001 version-2]# ls
acceptedEpoch currentEpoch log.100000001
[root@zk-2-82-0001 version-2]#
로그 파일 의 이름 규칙 은 log 입 니 다. 로 그 를 기록 하 는 첫 번 째 트 랜 잭 션 의 ID, 16 진수 입 니 다.
트 랜 잭 션 로그 시각 화
zookeeper 의 트 랜 잭 션 로 그 는 바 이 너 리 파일 입 니 다. vim 등 도 구 를 통 해 직접 접근 할 수 없습니다. zookeeper 가 가지 고 있 는 jar 패 키 지 를 통 해 트 랜 잭 션 로그 파일 을 읽 을 수 있 습 니 다. 다음 명령 을 수행 하 십시오.
[root@zk-2-82-0001 zookeeper]# java -classpath .:lib/slf4j-api-1.7.25.jar:zookeeper-3.4.12.jar org.apache.zookeeper.server.LogFormatter data/version-2/log.100000001
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
6/21/18 6:15:33 PM CST session 0x1000045eba30000 cxid 0x0 zxid 0x100000001 createSession 30000
6/21/18 6:59:45 PM CST session 0x1000045eba30000 cxid 0x2 zxid 0x100000002 closeSession null
6/21/18 7:47:53 PM CST session 0x200004654110000 cxid 0x0 zxid 0x100000003 createSession 30000
6/21/18 7:50:05 PM CST session 0x200004654110000 cxid 0x1 zxid 0x100000004 create '/20180621,#323031383036323131393530,v{s{31,s{'world,'anyone}}},F,1
6/21/18 7:50:28 PM CST session 0x200004654110000 cxid 0x5 zxid 0x100000005 closeSession null
6/21/18 7:51:01 PM CST session 0x1000045eba30001 cxid 0x0 zxid 0x100000006 createSession 30000
6/21/18 7:53:30 PM CST session 0x1000045eba30001 cxid 0x4 zxid 0x100000007 closeSession null
6/21/18 8:18:55 PM CST session 0x200004654110001 cxid 0x0 zxid 0x100000008 createSession 30000
6/21/18 8:21:15 PM CST session 0x200004654110002 cxid 0x0 zxid 0x100000009 createSession 30000
6/21/18 8:21:36 PM CST session 0x200004654110001 cxid 0x0 zxid 0x10000000a closeSession null
6/21/18 8:23:43 PM CST session 0x200004654110002 cxid 0x6 zxid 0x10000000b setData '/20180621,#6a757374696e20353163746f,1
6/21/18 8:25:09 PM CST session 0x200004654110002 cxid 0xa zxid 0x10000000c delete '/20180621
6/21/18 8:34:46 PM CST session 0x200004654110002 cxid 0xb zxid 0x10000000d closeSession null
EOF reached after 13 txns.
[root@zk-2-82-0001 zookeeper]#
스냅 로그
zookeeper 의 데 이 터 는 메모리 에 트 리 구조 로 저 장 됩 니 다. 스냅 샷 은 일정 시간 마다 전체 DataTree 의 데 이 터 를 정렬 하여 디스크 에 저장 합 니 다. 이것 이 바로 zookeeper 의 스냅 샷 파일 입 니 다. dataDir 가 지정 한 디 렉 터 리 에 폴 더 version - 2 가 존재 합 니 다. 이 폴 더 에는 스냅 샷 로그 파일 이 저 장 됩 니 다.
[root@zk-2-82-0002 version-2]# ls
acceptedEpoch currentEpoch log.100000001 snapshot.100000000
[root@zk-2-82-0002 version-2]#
zookeeper 스냅 샷 파일 의 이름 규칙 은 snapshot 입 니 다. zookeeper 가 스냅 샷 을 터치 하 는 순간 제출 한 마지막 트 랜 잭 션 의 ID 를 표시 합 니 다.
로그 정리
zookeeper 3.4.0 이후 zookeeper 는 snapshot 과 트 랜 잭 션 로그 자동 청소 기능 을 제공 합 니 다. zoo. cfg 의 autopurge. snapRetainCount 와 autopurge. purgeInterval 두 매개 변 수 를 설정 하여 로그 파일 의 정시 청 소 를 실현 합 니 다. autopurge. snapRetainCount 이 매개 변 수 는 유지 해 야 할 파일 수 를 지정 합 니 다. 기본적으로 3 개 를 유지 합 니 다. autopurge. purgeInterval 이라는 매개 변 수 는청소 빈 도 를 정 했 습 니 다. 단 위 는 시간 입 니 다. 1 또는 더 큰 데 이 터 를 작성 해 야 합 니 다. 0 은 자동 청소 기능 을 켜 지 않 음 을 표시 합 니 다.
[root@zk-2-82-0001 bin]# grep -in "autopurge" ../conf/zoo.cfg
21:# administrator guide before turning on autopurge.
26:#autopurge.snapRetainCount=3
29:#autopurge.purgeInterval=1
[root@zk-2-82-0001 bin]#
또는 명령 을 통 해 정기 적 으로 청소 하기:
#!/bin/bash
#snapshot file dir
dataDir=/opt/zookeeper/zkdata/version-2
#tran log dir
dataLogDir=/opt/zookeeper/zkdatalog/version-2
#Leave 66 files
count=66
count=$[$count+1]
ls -t $dataLogDir/log. | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot. | tail -n +$count | xargs rm -f
두 디 렉 터 리 에 해당 하 는 파일 을 삭제 하고 최신 66 개의 파일 을 저장 합 니 다. crontab 에 기록 할 수 있 습 니 다. 매일 새벽 2 시 에 한 번 실행 하도록 설정 하면 됩 니 다. ZK 자신 도 스 크 립 트 를 썼 습 니 다. bin / zkCleanup. sh 에 있 기 때문에 이 스 크 립 트 를 직접 사용 해도 청소 작업 을 수행 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZooKeeper 서버의 예는 하나뿐입니다.-- Start zookeeper-3.4.6/conf 디렉터리에 zoo_sample.cfg의 파일입니다. 이 파일을zoo로 개명합니다.cfg, 파일 이름은zoo만 가능합니다.cfg, ZooKeeper의 스크립트가 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.