Настройка кластера Kafka 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) как кафка копирует эти подключаемые модули коннектора на рабочий узел перед запуском процесса jvm на рабочем узле? потому что плагин - это тот, у которого есть мой код задачи, и его нужно скопировать в worker, чтобы запустить процесс в worker.

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

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

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

Спасибо.


person Kalaiselvam M    schedule 14.07.2018    source источник


Ответы (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:

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

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

person Giorgos Myrianthous    schedule 15.07.2018

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

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

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

Kafka connect Worker - это Java-процесс, на котором будет выполняться задача коннектора / подключения. Итак, во-первых, нам нужно запустить worker, чтобы запустить / запустить worker, нам нужна java, установленная на этой машине, затем нам нужно, чтобы Kafka подключила связанные файлы sh / bat для запуска worker и kafka libs, которые будут использоваться kafka connect worker, для этого мы просто скопируем / установим Kafka на рабочий компьютер, также нам нужно скопировать все jar-файлы / зависимости, связанные с соединителем и задачами подключения, в «plugin.path», как определено в приведенном ниже файле свойств рабочего, теперь рабочий компьютер готов, чтобы запустить worker, нам нужно вызвать ./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
person Kalaiselvam M    schedule 30.07.2018