18.4. Kafka 브로커 및 Zoo Cryostat 업그레이드
최신 버전의 Apache Kafka를 사용하도록 호스트 머신에서 Kafka 브로커 및 Zoo Cryostat를 업그레이드합니다. 설치 파일을 업데이트한 다음 모든 Kafka 브로커를 구성하고 다시 시작하여 새 브로커 프로토콜 버전을 사용합니다. 이러한 단계를 수행한 후 새 브랜드 간 프로토콜 버전을 사용하여 Kafka 브로커 간에 데이터가 전송됩니다.
Kafka 3.0.0에서 메시지 형식 버전 값은 inter.broker.protocol.version 과 일치하도록 가정되며 설정할 필요가 없습니다. 값은 사용된 Kafka 버전을 반영합니다.
사전 요구 사항
-
kafka사용자로 Red Hat Enterprise Linux에 로그인되어 있습니다. 별도의 호스트에서 사용 중인 Kafka 및 기타 Kafka 구성 요소를 설치했습니다.
자세한 내용은 3.1절. “설치 환경”의 내용을 참조하십시오.
- 설치 파일을 다운로드했습니다.
프로세스
Apache Kafka 클러스터용 Streams의 각 Kafka 브로커와 한 번에 하나씩 다음을 수행합니다.
Apache Kafka 소프트웨어 다운로드 페이지 에서는 Streams for Apache Kafka 아카이브 를 다운로드합니다.
참고메시지가 표시되면 Red Hat 계정에 로그인합니다.
명령줄에서 임시 디렉터리를 생성하고
amq-streams-<version>-bin.zip파일의 내용을 추출합니다.mkdir /tmp/kafka unzip amq-streams-<version>-bin.zip -d /tmp/kafka실행 중인 경우 호스트에서 실행 중인 Zoo Cryostat 및 Kafka 브로커를 중지합니다.
/opt/kafka/bin/zookeeper-server-stop.sh /opt/kafka/bin/kafka-server-stop.sh jcmd | grep zookeeper jcmd | grep kafka다중 노드 클러스터에서 Kafka를 실행하는 경우 4.3절. “Kafka 브로커의 정상 롤링 재시작 수행” 을 참조하십시오.
기존 설치에서
libs및bin디렉토리를 삭제합니다.rm -rf /opt/kafka/libs /opt/kafka/bin임시 디렉토리에서
libs및bin디렉토리를 복사합니다.cp -r /tmp/kafka/kafka_<version>/libs /opt/kafka/ cp -r /tmp/kafka/kafka_<version>/bin /opt/kafka/-
필요한 경우 새 버전의 변경 사항을 반영하도록
config디렉터리의 구성 파일을 업데이트합니다. 임시 디렉터리를 삭제합니다.
rm -r /tmp/kafka/opt/kafka/config/server.properties속성 파일을 편집합니다.inter.broker.protocol.version및log.message.format.version속성을 현재 버전으로 설정합니다.예를 들어 Kafka 버전 3.6.0에서 3.7.0으로 업그레이드하는 경우 현재 버전은 3.6입니다.
inter.broker.protocol.version=3.6 log.message.format.version=3.6업그레이드 중인 Kafka 버전에 대해 올바른 버전을 사용합니다(
3.5,3.6등). 현재 설정에서inter.broker.protocol.version을 변경하지 않으면 브로커가 업그레이드 중에 계속 서로 통신할 수 있습니다.속성이 구성되지 않은 경우 현재 버전으로 추가합니다.
Kafka 3.0.0 이상에서 업그레이드하는 경우
inter.broker.protocol.version만 설정하면 됩니다.업데이트된 Zoo Cryostat 및 Kafka 브로커를 다시 시작하십시오.
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.propertiesKafka 브로커 및 Zoo Cryostat는 최신 Kafka 버전에 바이너리를 사용하기 시작합니다.
멀티 노드 클러스터에서 브로커를 다시 시작하는 방법에 대한 자세한 내용은 4.3절. “Kafka 브로커의 정상 롤링 재시작 수행” 을 참조하십시오.
재시작한 Kafka 브로커가 다음과 같은 파티션 복제본에 도달했는지 확인합니다.
kafka-topics.sh툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.다음 단계에서 새 인터브로커 프로토콜 버전을 사용하도록 Kafka 브로커를 업데이트합니다.
한 번에 하나씩 각 브로커를 업데이트합니다.
주의다음 단계를 완료한 후에는 Apache Kafka용 스트림을 다운그레이드할 수 없습니다.
- 클라이언트를 업그레이드하기 위한 선택한 전략에 따라 모든 클라이언트 애플리케이션을 업그레이드하여 새 버전의 클라이언트 바이너리를 사용합니다.
/opt/kafka/config/server.properties파일에서inter.broker.protocol.version속성을3.7로 설정합니다.inter.broker.protocol.version=3.7명령줄에서 수정한 Kafka 브로커를 중지합니다.
/opt/kafka/bin/kafka-server-stop.shKafka가 실행 중이 아닌지 확인합니다.
jcmd | grep kafka수정한 Kafka 브로커를 다시 시작합니다.
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.propertiesKafka가 실행 중인지 확인합니다.
jcmd | grep kafkaKafka 3.0.0 이전 버전에서 업그레이드하는 경우
/opt/kafka/config/server.properties파일에서log.message.format.version속성을3.7로 설정합니다.log.message.format.version=3.7명령줄에서 수정한 Kafka 브로커를 중지합니다.
/opt/kafka/bin/kafka-server-stop.shKafka가 실행 중이 아닌지 확인합니다.
jcmd | grep kafka수정한 Kafka 브로커를 다시 시작합니다.
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.propertiesKafka가 실행 중인지 확인합니다.
jcmd | grep kafka재시작한 Kafka 브로커가 다음과 같은 파티션 복제본에 도달했는지 확인합니다.
kafka-topics.sh툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.-
업그레이드에 사용된 경우
server.properties파일에서 레거시log.message.format.version구성을 제거합니다.