Как динамически добавить новые машины брокеров Kafka в кластер - PullRequest
2 голосов
/ 05 августа 2020

У нас есть конфлюентный кластер Kafka, кластер включает 3 брокеры Kafka,

Сведения о версии:

Kafka machines are installed on rhel version 7.2 
Kafka confluent version is 0.1x
Zookeeper version: 3.4.10
schema-registry version: 4.0.0

Каждая машина-брокер Kafka включает следующие службы

Kafka broker
Zookeeper server
Schema registry

Теперь мы хотим добавить дополнительные машины-брокеры 3 Kafka в текущий кластер Kafka (Дополнительные машины Kafka - kafka04/05/06 с той же версией Kafka - 0.1X,)

Таким образом, кластер должен иметь:

6 Kafka машины-брокеры - kafka01, kafka02 , kafka03 , kafka04 , kakfa05 , kafka05

3 zookeeper серверы - kafka01, kafka02 , kafka03

3 schema registry сервисы - kafka01, kafka02 , kafka03

Чтобы подключить новые брокеры 3 Kafka к существующему кластеру Kafka, нам необходимо изменить конфигурацию на всех машинах Kafka (старые машины Kafka и новые машины Kafka)

Мы не уверены, какие именно файлы конфигурации в брокерах Kafka следует изменить, но из моего понимания Мы должны изменить настройки Kafka и zookeeper следующим образом:

Я буду рад получить комментарии / заметки о следующей процедуре

  1. Отредактируйте файл server.properties на новых брокерах Kafka - kafka04/05/06 и измените broker.id как следующий

    На kafka04 - broker.id=4 На kafka05 - broker.id=5 На kafka06 - broker.id=6

  2. Редактировать server.properties на всех Kafka машин - kafka01/02/03/04/05/06 И измените следующие параметры на общее количество узлов в кластере

     offsets.topic.replication.factor=6
     transaction.state.log.replication.factor=6
    
  3. На новых машинах Kafka - Kafka 04/05/06 отредактируйте server.properties и обновите параметр - zookeeper.connect с IP-адресами сервера zookeeper, который расположен на kafka01, kafka02, kafka03

    Пример

     zookeeper.connect=10.10.10.1:2181,10.10.10.2:2181,10.10.10.3:2181
    
  4. На Kafka машины - kafka 04/05/06, отредактируйте файл - zookeeper.properties как После

    server.1=10.10.10.1:2888:3888
    server.2=10.10.10.2:2888:3888
    server.3=10.10.10.3:2888:3888
    
  5. Отредактируйте файл - myid файл на Kafka 04/05/06 и измените параметр broker.id на следующий

    на kafka04 установить :

     broker.id=4
    

    на kafka05 установить:

     broker.id=5
    

    на kafka06 установить:

     broker.id=6
    
  6. После настроек, как указано выше , перезапустите все службы брокеров Kafka на kafka01/02/03/04/05/06 и перезапустите серверы zookeeper на kafka01/02/03

    и убедитесь, что все службы Kafka и служба zookeeper успешно запущены

Справочная информация - https://www2.microstrategy.com/producthelp/current/PlatformAnalytics/en-us/Content/Add_kafka_node_to_kafka_cluster.htm

1 Ответ

4 голосов
/ 05 августа 2020

При добавлении брокеров вам не нужно ни изменять конфигурацию существующих брокеров, ни перезапускать их. То же самое относится к ZooKeeper, если вы не добавляете новые серверы ZooKeeper.

На новых брокерах вам просто нужно установить другое значение broker.id.

Я не рекомендую увеличивать коэффициент репликации тем (включая внутренние) за пределами 3.

После запуска ваших новых брокеров вы можете захотеть перебалансировать существующие данные. Для этого существует множество инструментов, в том числе инструмент kafka-reassign-partitions.sh. В документации Kafka есть раздел, подробно описывающий процесс: https://kafka.apache.org/documentation/#basic_ops_cluster_expansion

...