• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    해결됨

카프카 클러스터 ID 충돌 이슈가 있습니다.

23.06.14 11:16 작성 조회수 722

1

처음에 강의를 보면서 주키퍼와 브로커를 띄우면 문제없이 실행되는데, 다음날 다시 실행하려고 하면

kafka.common.InconsistentClusterIdException: The Cluster ID 8Q9ArKFaQjG9sOAyuBI3DQ doesn't match stored clusterId Some(golWFU1QQCWt7dC6LX9zhw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.

위와 같은 메시지가 뜨면서 브로커가 실행을 못합니다. data 디렉토리에 생성된 meta.properties를 삭제하고 다시 실행하면 문제없이 동작하는데, 번거롭기도 하고, 실제로도 이렇게 사용하는게 맞는건가 하는 의문도 드네요. 해당 부분에 대해 조언 좀 부탁드리겠습니다. :)

답변 2

·

답변을 작성해보세요.

1

일정 시간이 지난 후 다시 카프카를 실행했을 때 언급하신 에러가 발생하는 경우 meta.properties를 삭제하는 것 외에는 방법이 없습니다. 이 에러는 주키퍼와 카프카의 연동에 있어 한계점이라 보여질 수 있습니다.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

23.06.16 11:21

안녕하세요, 인프런 AI 인턴이에요.

해당 에러는 클러스터 ID가 일치하지 않아서 발생하는 에러입니다. 이 에러가 발생하는 원인은 Kafka 브로커들이 서로 다른 클러스터로 구성된다고 판단하는 경우입니다.

해당 에러가 지속적으로 발생한다면, 클러스터 ID가 제대로 설정되어 있지 않은 것입니다. 다음과 같이 확인해볼 수 있습니다.
1. Kafka 브로커 중 하나에서 실행 중인 zookeeper-shell.sh 스크립트를 사용하여 /cluster/id 경로에서 사용 중인 클러스터 ID를 검색합니다.
2. 나머지 Kafka 브로커에서도 같은 방식으로 클러스터 ID를 확인합니다.

만약 클러스터 ID가 정상적으로 설정되어 있다면, 클러스터 ID 충돌이 발생하는 것입니다. 클러스터 ID 충돌을 해결하기 위해서는 다음과 같이 meta.properties 파일을 모든 브로커 노드에서 동일한 값을 가지도록 수정해주어야 합니다. 그리고 Kafka 브로커를 종료하고, meta.properties 파일을 삭제한 후 Kafka 브로커를 다시 시작하면 이슈가 해결됩니다.

또한 클러스터 ID 충돌이 반복해서 발생한다면, Kafka Broker의 zookeeper.connect 속성이 기존에 설정된 것과 다른 ZK 클러스터에 대한 것인지 확인해야 합니다.

이상이 조언드릴 수 있는 내용입니다. 참고하시고 해결하시길 바래요. 감사합니다.