본문 바로가기
Dev/Kafka

Kafka topic 삭제 - already marked for deletion 해결

by 돈코츠라멘 2020. 6. 11.

토픽을 삭제하기 위해서는 우선 $KAFKA_HOME/config/server.propertiesdelete.topic.enable 설정을 추가한 후 카프카를 재기동해야한다.

delete.topic.enable = true

만약 이 설정을 추가하지 않은 상태에서 일반적으로 알려진 토픽 삭제 방법인 kafka-topics.sh을 이용해서 토픽을 삭제하면 아래와 같이 already marked for deletion이라는 메시지만 나타나고 정상적으로 삭제가 안 된다. 이 경우 다시 토픽을 생성할 수도 없으며 해당 토픽으로 들어온 메시지도 처리가 안 된다.

$ ./kafka-topics.sh --delete --zookeeper $ZOOKEEPER --topic morpheme.t
Topic morpheme.t is already marked for deletion.

이럴 때는 zookeeper shell(zookeeper-shell.sh)의 rmr 명령으로 삭제하면 완전히 삭제되어 다시 토픽을 생성하여도 에러가 발생하지 않는다.

$ ./zookeeper-shell.sh localhost:2181 
ls /brokers/topics 
[morpheme.t, __consumer_offsets]
rmr /brokers/topics/morpheme.t 

(참고) 원래 성공했는지 아닌지 따위 아래에 출력되지 않는다. 다시 ls /brokers/topics 명령을 쳐서 토픽이 정상적으로 삭제됐는지 확인한다.

댓글