kafka 군집 확장 (Topic 이전)
글 을 시작 하기 전에 kafka - manager 도 구 를 사용 하 는 것 을 추천 합 니 다. kafka 동기 화 상 태 를 실시 간 으로 볼 수 있 습 니 다. broker 는 실시 간 으로 읽 기와 쓰기 데이터, topic 파 티 션 상황 등 정 보 를 읽 고 최 적 화 된 leader 를 다시 선택 하 는 등 작업 을 할 수 있 습 니 다.
kafka 의 군집 확장 은 사실상 topic 의 partition 을 새로 추 가 된 군집 으로 이동 시 키 는 것 이다.
topic 이동 json 파일 을 만 드 는 데 는 두 가지 방법 이 있 습 니 다.
--topics-to-move-json-file
와 --broker-list
를 통 해 새로운 topic 파 티 션 정 보 를 대량으로 생 성 한 다음 에 이 정보 에 따라 이전 작업 을 수행 합 니 다.1. 새 노드 시작
원래 노드 의 kafka 디 렉 터 리 를 scp 명령 을 통 해 새 노드 로 복사 하려 면 설정 파일 의 broker 만 수정 해 야 합 니 다.id 와 ip 주소, 그리고 차례대로 kafka 서 비 스 를 시작 합 니 다.
2. 주제 이동
topic A, topic B 이동
sudo vim topics-to-move.json
{"topics": [{"topic": "topicA"},
{"topic": "topicB"}],
"version":1
}
상기
topic
를 broker
3, 4, 5 로 이동 하여 generate
명령 으로 partition 분배 json 문자열 을 생 성 합 니 다.bin/kafka-reassign-partitions.sh --zookeeper zk1:2181
--topics-to-move-json-file topics-to-move.json --broker-list "3,4,5" --generate
다음 과 같이 보 입 니 다:
Current partition replica assignment
{"version":1,"partitions":[{"topic":"topicA","partition":2,"replicas":[0,2]},
{"topic":"topicA","partition":1,"replicas":[1,0]},
{"topic":"topicB","partition":1,"replicas":[0,1]},
{"topic":"topicA","partition":0,"replicas":[2,1]},
{"topic":"topicB","partition":0,"replicas":[2,0]},
{"topic":"topicB","partition":2,"replicas":[1,2]}]}
Proposed partition reassignment configuration
{"version":1,"partitions":[{"topic":"topicA","partition":2,"replicas":[3,4]},
{"topic":"topicA","partition":1,"replicas":[5,3]},
{"topic":"topicB","partition":1,"replicas":[3,4]},
{"topic":"topicA","partition":0,"replicas":[4,5]},
{"topic":"topicB","partition":0,"replicas":[5,3]},
{"topic":"topicB","partition":2,"replicas":[4,5]}]}
Proposed partition reassignment configuration
아래 데 이 터 를 기록 합 니 다 expand-cluster-reassignment.json
위 에서 말 한 두 번 째 방식 은 명령 없 이 이 파일 을 수 동 으로 쓰 는 것 이다.vim expand-cluster-reassignment.json
{"version":1,"partitions":[{"topic":"topicA","partition":2,"replicas":[3,4]},
{"topic":"topicA","partition":1,"replicas":[5,3]},
{"topic":"topicB","partition":1,"replicas":[3,4]},
{"topic":"topicA","partition":0,"replicas":[4,5]},
{"topic":"topicB","partition":0,"replicas":[5,3]},
{"topic":"topicB","partition":2,"replicas":[4,5]}]}
execute
명령 으로 본 격 적 으로 실 행 됩 니 다. 상기 2 개의 topic 를 expand-cluster-reassignment
의 설정 에 따라 분배 합 니 다. 이 과정 은 다른 topic 의 읽 기 (지연) 에 영향 을 줄 수 있 습 니 다.bin/kafka-reassign-partitions.sh --zookeeper zk1:2181
--reassignment-json-file expand-cluster-reassignment.json --execute
실행 상태 조회
실행 상태 조회
bin/kafka-reassign-partitions.sh --zookeeper zk1:2181
--reassignment-json-file expand-cluster-reassignment.json --verify
주로 몇 가지 상태 가 있 습 니 다.
Reassignment of partition [topicA,4] is still in progress #
Reassignment of partition [topicB,2] completed successfully #
만약 당신 이 많은
ERROR
정 보 를 본다 면:ERROR: Assigned replicas (0,5,1,2,3,4) don't match the list of replicas for reassignment (5,3,4) for partition [topicA,3]
Reassignment of partition [topicA,3] failed
네모 나 지 말고 노드 를 닫 지 말고 이따가 다시 보면 정상 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Cloud를 사용한 기능적 Kafka - 1부지금까지 찾을 수 없었던 Spring Cloud Kafka의 작업 데모를 만들기 위해 이 기사를 정리했습니다. Confluent 스키마 레지스트리 7.1.0 이 기사는 먼저 Spring Cloud Stream을 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.