две версии kafka, работающие в одном кластере

Я пытаюсь настроить два сервера Kafka в кластере из 3 узлов. в то время как уже есть один брокер Kafka (версия 0.8), который уже работает с приложением. и есть зависимость от этой кафки версии 0.8, которую нельзя нарушить/обновить.

Теперь для POC мне нужно настроить 1.0.0, так как мой новый код совместим с этой версией и выше...

Моя задача — передавать данные из оракула в таблицы HIVE. для этого я использую jdbc connect для извлечения данных из оракула и hive jdbc для передачи данных в таблицы кустов. это должно быть быстро и просто...

Мне нужна следующая помощь

  1. Могу ли я использовать spark-submit для запуска этой отправки данных в куст?

  2. могу ли я просто скопировать kafka_2.12-1.0.0 на свой сервер Linux на одном из узлов и запустить на нем свой код. Я думаю, мне нужно настроить мои Zookeeper.properties и server.properties с неиспользуемыми портами и запустить эти новые службы zookeeper и kafka отдельно ??? обратите внимание, что я не могу беспокоить существующего зоопарка и кафку, которая уже запущена.

Пожалуйста, помогите мне достичь этого.


person user1708054    schedule 18.11.2018    source источник


Ответы (2)


Я не уверен, что запуск двух приложений с очень интенсивным использованием памяти (Kafka и/или Kafka Connect) на одних и тех же машинах считается очень безопасным. Особенно если вы не хотите нарушать работу существующих приложений. На самом деле последовательный перезапуск с обновлением будет лучшим из соображений производительности и функциональности. И нет, две версии Kafka не должны быть частью одного кластера, если только вы не находитесь в процессе последовательного обновления.

Если возможно, используйте новое оборудование... Я предполагаю, что Kafka 0.8 работает даже на машинах, которые могут быть старыми и с истекшим сроком гарантии? Тогда я не знаю серьезной причины даже не использовать более новую версию Kafka, но да, извлеките ее на любой машине, которую вы хотите, используйте, возможно, что-то вроде Ansible или предпочтительный инструмент управления конфигурацией, который вы выберете, чтобы сделать это для вас.

На самом деле вы можете использовать один и тот же кластер Zookeeper, просто убедитесь, что это разные настройки. Например,

Кластер 0,8

zookeeper.connect=zoo.example.com:2181/kafka08

Кластер 1.x

zookeeper.connect=zoo.example.com:2181/kafka10

Также непонятно, как Spark вписывается в эту архитектуру. Пожалуйста, не используйте приемник JDBC для Hive. Используйте правильный приемник HDFS Kafka Connect, который имеет прямую поддержку Hive через хранилище метаданных. И хотя исходный код JDBC может работать для Oracle, скорее всего, вы уже можете позволить себе лицензию на GoldenGate.

person OneCricketeer    schedule 18.11.2018

я могу добиться двух версий kafka 0.8 и 1.0, работающих на одном сервере с соответствующими зоопарками.

следующие шаги: 1. скопируйте папку пакета версии на сервер в нужное место 2. измените настройки конфигурации в zookeeper.properties и server.propeties (здесь вам нужно установить порт, который не используется на этом конкретном сервере) 3. запустите сервисы и отправлять данные в темы кафки.

Примечание. Это требование относится только к POC, а не к идеальной производственной среде. как было сказано выше, мы должны перейти на следующий уровень, а не на то, что практикуется выше.

person user1708054    schedule 20.11.2018