티스토리 뷰

반응형

Kafka 브로커를 KRaft 모드로 실행할 때 meta.properties 파일이 없어 서버가 종료되는 오류를 해결한 과정을 정리합니다.

1. 오류 상황

KRaft 모드에서 카프카를 기동하려고 아래 명령을 실행하면:

bin/kafka-server-start.sh config/kraft/server.properties

로그에 다음과 같은 에러가 발생합니다:

[2025-04-23 15:22:05,327] WARN No meta.properties file under dir /tmp/kraft-combined-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint)
[2025-04-23 15:22:05,328] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
org.apache.kafka.common.KafkaException: No `meta.properties` found in /tmp/kraft-combined-logs (have you run `kafka-storage.sh` to format the directory?)

2. 원인

KRaft 모드에서는 브로커 메타데이터와 로그 디렉터리가 포맷돼 있어야 합니다. 디렉터리에 meta.properties 파일이 없으면 브로커가 시작되지 않습니다.

3. 해결 절차

  1. UUID 생성
  2. cd <KAFKA_HOME> UUID=$(bin/kafka-storage.sh random-uuid) echo "Cluster ID: $UUID"
  3. 설정 파일 확인
    process.roles=broker,controller
    node.id=0
    log.dirs=/tmp/kafka-log
    
  4. config/kraft/server.properties 파일에서 log.dirs 경로가 포맷할 디렉터리(/tmp/kafka-log 등)와 일치하는지 확인합니다.
  5. 스토리지 포맷이 명령을 실행하면 log.dirs 경로에 meta.properties 파일이 생성됩니다.
  6. bin/kafka-storage.sh format \\ --cluster-id $UUID \\ --config config/kraft/server.properties
  7. 브로커 기동이제 오류 없이 Kafka 브로커가 정상 기동됩니다.
  8. bin/kafka-server-start.sh config/kraft/server.properties

4. 추가 팁

  • 이미 포맷된 디렉터리를 다시 포맷하려면 -ignore-formatted 옵션을 사용하세요.
  • 포트 바인딩 여부는 netstat -plnt | grep :9092 명령으로 확인할 수 있습니다.
  • 실행 중인 프로세스 확인은 ps -ef | grep kafka.Kafka 명령을 활용하세요.
반응형