작성
·
1.9K
0
현재 기존에 있던 orders와 my_topic_users 토픽을 삭제하려고한다.
/c/Work/Kafka-practice/kafka 위치에서
$ ./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list 명령어로 토픽이름 확인하니까 다음과 같이 나옵니다.
__consumer_offsets
connect-configs
connect-offsets
connect-status
example-catalog-topic
my_topic_users
orders
/c/Work/Kafka-practice/kafka 위치에서
$ ./bin/windows/kafka-topics.bat --delete --topic orders --bootstrap-server localhost:9092
이렇게 orders 토픽 삭제 명령어를 입력했습니다.
(입력후 새로운 경로창 이 나오며 커맨드라인이 명령어 먹은것 처럼 일어남)
그러고 나서 다시
$ ./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list 명령어로 토픽 리스트를 보려고하는데..
아래와 같은 에러가 나서 검색해보니까
[2022-09-06 14:33:35,758] WARN [AdminClient clientId=adminclient-1] Connection to node -1 (localhost/127.0.0established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
현재 zookeeper 실행시킨다음
./bin/windows/kafka-server-start.bat ./config/server.properties 명령어로 kafka 실행시켜도 안켜집니다.
/c/Work/Kafka-practice/kafka 위치에서
vim ./config/server.properties 으로 해당 파일 접속하면
listeners=PLAINTEXT://:9092 부분 이 주석 되있는데
이 부분을 주석 해제하고 저장했습니다.
그래도 여전히 동일한 오류로 kafka는 안켜지며
토픽리스트 또한 동일한 에러가 나면서 안보여집니다..
그래서 일단 listeners=PLAINTEXT://:9092 부분 다시 주석으로 원복 시켰습니다.
그리고나서 동일한 ./config/server.properties 파일에서
#advertised.listeners=PLAINTEXT://your.host.name:9092
이 부분을 주석 풀고 아래처럼 변경함
advertised.listeners=PLAINTEXT://localhost:9092
그래도 여전히 kafka는 안켜지며 토픽리스트도 안보여집니다...
kafka 실행시키면 에러나면서 꺼지는데
마지막에는 다음과 같은 에러가 발생합니다...
[2022-09-06 15:08:10,341] INFO [ReplicaAlterLogDirsManager on broker 0] Removed fetcher for partitions Set(orders-0) (kafka.server.ReplicaAlterLogDirsManager)
[2022-09-06 15:08:10,351] ERROR Shutdown broker because all log dirs in C:\tmp\kafka-logs have failed (kafka.log.LogManager)
검색하고 해볼 수 있는건 다 해봐서
그냥 windows로 올려주신 카프카 설정을 다시 다운받고 할까 생각중인데..
그래도 왜 안되는지는 알아야할 것같습니다..
어떻게하면 이 상황을 해결할 수 있을까요?
답변 1
1
안녕하세요, 이도원입닏.
위에서 말씀하신 오류와 정확하게 같은 현상이라고 볼수는 없지만, Windows에 Kafka를 설치한 상태에서 kafka-topic.bat 명령어를 이용하여 Topic을 삭제하는 경우 오류가 발생합니다. Topic의 정보는 OS의 Temp 디렉토리에 Zookeeper, Kafka 별로 각각의 로그가 저장되고 있는데, 해당 로그를 삭제하는 작업에서 문제가 발생하는 것으로 보여집니다. 다시 Kafka를 기동하는 경우에 로그에 문제가 생겼다고 하면서 다시 기동되지 않는 문제가 계속 발생하고 있습니다.
Windows에서 작업하실 때는 토픽의 삭제 작업을 하지 않으시던가, 해당 Temp 폴더의 내용을 직접 탐색기에서 삭제하시는 게 좋습니다. 단, 이작업을 할때도 삭제하려는 토픽의 정보만 정확하게 선택해서 삭제하기가 어려울 수 있기 때문에, 강의를 통해 학습하시는 동안에는 모든 Zookeeper의 폴더와 Kafka의 폴더를 삭제하시면 Clean 상태에서 Kafka를 재기동 하실 수 있습니다. Windows의 경우 C:\Temp 디렉토리 하위에 zookeeper, kafka 라는 폴더가 있으며, 해당 폴더로 이동해 보면, 각 토픽의 offset 정보들을 저장하는 하위 폴더가 있을 겁니다. 그냥 zookeeper, kafka 폴더를 통채로 삭제하시고 (지금은 Kafka가 기동되지 않았다고 하니 그냥 진행하셔도 되며, 나중에는 Kafka와 Zookeeper를 종료한다음 진행하세요) Kafka - Zookeeper 순으로 다시 기동하시면 정상 작동 할겁니다.
Windows에서도 Docker 형태로 Kafka를 기동하시면, 삭제 작업은 정상적으로 처리되니 참고하시기 바랍니다. 관련 내용은 업데이트 해 놓도록 하겠습니다.
감사합니다.
친절하신 답변감사합니다.
그런데 저는
C:\Temp 디렉토리 하위에 zookeepe, kafka 라는 폴더가 없습니다.
C:\Temp 아래는 폴더 구조는 다음과 같습니다..
2020(폴더)
HncDownload(폴더)
Service.log
AUtempR(폴더 - 안에 아무것도 없음)
현재 기존에 제공해 주신 Kafka 연습폴더 자체를 삭제 하고
다시 압축을 풀어서 압축 푼 경로에서
zookeeper와 kafka를 실행해도 zookeeper는 실행되고 kafka는 실행되지 않습니다...
즉, 동일한 에러가 발생하네요..
이거는 Service.log라도 삭제해야하나요??...
대체 어떤걸 지워야지 다시 kafka서버가 정상 실행될까요?
참고로 자료 올려주신 윈도우용 카프카 파일 전부 삭제하고 다시 압축 풀고 설정해도
토픽목록은 동일한 에러로 안보이고, 카프카 역시 동일한 에러로 켜지지 않습니다..