Kafka Connect Настройка кластера или запуск Connect работников

Я иду через Kafka Connect, и я пытаюсь получить концепции.

Допустим, у меня настроен кластер kafka (узлы k1, k2 и k3), и он работает, теперь я хочу запустить работников kafka connect в разных узлах, скажем, c1 и c2 в распределенном режиме.

Несколько вопросов.

1) Для запуска или запуска kafka connect в распределенном режиме мне нужно использовать команду ../bin/connect-distributed.sh, который доступен в узлах кластера kakfa, поэтому мне нужно запустить kafka connect с любого из узлов кластера kafka? или любой узел, с которого я запускаю kafka connect, должен иметь бинарные файлы kafka, чтобы я мог использовать ../bin/connect-distributed.sh

2) Мне нужно скопировать плагины моего коннектора на любой узел кластера kafka (или на все узлы кластера?), Откуда я делаю шаг 1?

3) как kafka копирует эти плагины коннектора в рабочий узел перед запуском процесса jvm на рабочем узле? потому что плагин имеет тот, который имеет мой код задачи, и его нужно скопировать на работник, чтобы запустить процесс в работнике.

4) Нужно ли мне устанавливать что-либо в узлах кластера соединений c1 и c2, например, нужно ли устанавливать java или какие-либо связанные с kafka соединения?

5) В некоторых местах написано, что используйте confluent platform, но я бы хотел начать с apache kafka connect first.

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

Спасибо.

2 ответа

Решение

1) Чтобы иметь высокодоступную услугу kafka-connect, вам нужно запустить как минимум два экземпляра connect-distributed.sh на двух разных машинах, которые имеют одинаковые group.id, Вы можете найти более подробную информацию о конфигурации каждого работника здесь. Для повышения производительности Connect следует запускать независимо от компьютеров-посредников и Zookeeper.

2) Да, вам нужно разместить все ваши разъемы под plugin.path (обычно под /usr/share/java/) на каждой машине, которую вы планируете запустить kafka-connect.

3) kafka-connect загрузит разъемы при запуске. Вам не нужно справляться с этим. Обратите внимание, что если ваш экземпляр kafka-connect работает и добавлен новый соединитель, вам необходимо перезапустить службу.

4) Вам необходимо установить Java на все ваши машины. Для Confluent Platform, в частности:

Java 1.7 и 1.8 поддерживаются в этой версии Confluent Platform (Java 1.9 в настоящее время не поддерживается). Вы должны работать с сборщиком мусора Garbage-First (G1). Для получения дополнительной информации см. Поддерживаемые версии и совместимость.

5) Это зависит. Confluent была основана первоначальными создателями Apache Kafka и представляет собой более полный дистрибутив с добавлением управления схемой, коннекторами и клиентами. Он также поставляется с KSQL, который очень полезен, если вам нужно воздействовать на определенные события. Confluent просто добавляет поверх дистрибутива Apache Kafka, это не модифицированная версия.

Ответ, данный Гиоргосом, правильный. Я запустил несколько разъемов, и теперь я понимаю это лучше.

Я просто пытаюсь выразить это по-другому.

В Kafka connect есть две вещи, одна из которых - Worker, а вторая - коннектор. Ниже приведено подробное описание работы распределенной Kafka connect.

Kafka connect Worker - это Java-процесс, на котором будет запускаться задача connect / connect. Итак, во-первых, нам нужно запустить рабочий, чтобы запустить / запустить рабочий, нам нужен Java, установленный на этой машине, а затем нам нужны Kafka connect, связанные с файлами sh / bat, чтобы запустить worker и kafka libs, которые будут использоваться kafka connect worker, для этого мы просто скопируем / установим Kafka на рабочую машину, а также нам нужно скопировать все jars / dependencies, связанные с коннекторами и задачами соединения, в "plugin.path", как определено в приведенном ниже файле свойств работника, теперь рабочая машина готова, для запуска работника нам нужно вызвать./bin/connect-distributed.sh./config/connect-distributed.properties, здесь connect-distributed.properties будет иметь конфигурацию для worker. То же самое нужно повторить на каждой машине, где нам нужно запустить Kafka connect.

Теперь рабочий процесс Java выполняется на всех машинах, в конфигурации woker будет свойство group.id, рабочие с таким же значением свойства будут формировать группу / кластер рабочих.

Каждый рабочий процесс будет предоставлять конечную точку покоя (по умолчанию http://localhost:8083/connectors), чтобы запустить / запустить соединитель на работающих работниках, нам нужно сделать http-post конфигурацию соединителя json, основываясь на данной конфигурации, которую рабочий будет Запустите соединитель и количество задач в вышеуказанной группе / кластере рабочих.

Пример: подключить пост,

curl -X POST -H "Content-Type: application/json" --data '{"name": "local-file-sink", "config": {"connector.class":"FileStreamSinkConnector", "tasks.max":"3", "file":"test.sink.txt", "topics":"connect-test" }}' http://localhost:8083/connectors
Другие вопросы по тегам