apache kafka, zookeeper 재기동 후 Unexpected exception, exiting abnornally java.io.EOFException 발생.

정기 점검으로 인해 운영중인 카프카/주키퍼를 재기동했더니  Unexpected exception, exiting abnornally java.io.EOFException 이 발생하면서 브로커가 정상적으로 동작을 하지 못하는 현상이 발생하였다.
원인은 Disk Full로 주키퍼의 트랜젝션 파일을 온전히 저장하지 못해서 발행하는 것이었다.

다음과 같은 조치를 통해 정상화 할 수 있다.

우선 카프카용 주키퍼의 데이터 경로 [KAFKA_HOME]/zookeeper-data/version2 에서
$ ls -lat 
명령으로 가장 최근에 만들어진 로그와 스냅샷 파일을 확인한 후
사이즈가 0이거나 마지막에 작성된 로그를 삭제하고 재기동하면 된다.

후속조치로는 [KAFKA_HOME]/logs 아래에 빼곡히 들어차 있는 controller.log , server.log, state-change.log 들을 주기적으로 삭제하는 스크립트를 만들고 크론으로 등록했다.
http://heyo.net/xe/prog_tip/1984
[code]
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 
cd [KAFKA_HOME_PATH]/logs
find ./* \( -name 'controller.log.*' -o -name 'server.log.*' -o -name 'state-change.log.*' \) -mtime +30 -exec rm -f {} \;
find ./* \( -name 'controller.log.*' -o -name 'server.log.*' -o -name 'state-change.log.*' \) ! -name '*.Z' -mtime +7 -exec compress {} \;
[/code]



2016/06/03 13:27 2016/06/03 13:27
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다