요즘 아파치 카프카 애플리케이션 프로그래밍 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
파일들을 주기적으로 비우는 스크립트를 작성해야겠다.