주키퍼 실행 시 오류, ERROR Unexpected exception, exiting abnormally(org.apache.zookeeper.server.ZooKeeperServerMain)

문법식·2022년 8월 31일
0

요즘 아파치 카프카 애플리케이션 프로그래밍 with 자바 책을 따라하면서 카프카 실습을 해보고 있는 중이다. 오늘도 실습을 위해 EC2를 실행했는데 주키퍼와 카프카가 실행되어 있지 않았다. 그래서 주키퍼를 실행하려고 아래의 명령을 치고 확인했는데 주키퍼가 실행되지 않았다.

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

server.log를 확인해보니 글 아래에 첨부한 오류가 발생하고 있었다.

[2022-08-31 1:14:43,783] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)
java.io.IOException: No snapshot found, but there are log entries. Something is broken!
    at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:222)
    at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:240)
    at org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:290)
    at org.apache.zookeeper.server.ZooKeeperServer.startdata(ZooKeeperServer.java:450)
    at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:764)
    at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98)
    at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:144)
    at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:106)
    at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:128)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)

원인을 확인해보니 logs 디렉토리에 있는 각종 log 파일들로 인해 디스크 용량이 다 차버렸고 주키퍼가 트랜잭션 파일을 제대로 저장하지 못해서 발생하는 오류였다. 아래의 방법으로 해결하였다.

  • logs 디렉토리 밑에 있는 log 파일들을 삭제하여 용량을 확보한다.
  • /tmp/zookeeper를 삭제한다.
  • 위에 첨부한 주키퍼 실행 명령으로 주키퍼를 다시 실행한다. 그러면 /tmp/zookeeper가 다시 생성된다.

나중에 시간되면 logs 디렉토리 밑에 생성되는 log 파일들을 주기적으로 비우는 스크립트를 작성해야겠다.

profile
백엔드

0개의 댓글