Как интегрировать неконфлюентные коннекторы с Apache Kafka Connect - PullRequest
0 голосов
/ 15 мая 2018

Существует требование, когда мы получаем поток данных из Kafka Stream, и наша цель - передать эти данные в SOLR.

Мы немного читали, но обнаружили, что на рынке доступно множество решений Kafka Connect, но проблема в том, что мы не знаем, какое решение лучше и как его достичь.

Варианты:

  1. Используйте разъем Solr для соединения с Kafka.
  2. Используйте Apache Storm, поскольку он напрямую поддерживает интеграцию с Solr.

Для вышеупомянутых опций не предоставлено много документации или подробной информации.

Будет ли кто-нибудь достаточно любезен, чтобы сообщить мне

Как мы можем использовать соединитель Solr и интегрироваться с потоком Kafka без использования Confluent?
Разъем Solr-Kafka : https://github.com/MSurendra/kafka-connect-solr

Также, что касается Apache Storm, Удастся ли Apache Storm принять Kafka Stream и отправить его в Solr, хотя нам потребуется некоторая очистка данных перед передачей в Solr?

1 Ответ

0 голосов
/ 16 мая 2018

Я избегаю Шторма здесь, потому что вопрос в основном о Kafka Connect

CAVEAT - в этом вопросе Solr Connector используется зависимость Kakfa 0.9.0.1, поэтому очень маловероятно, что он будет работать с новейшими API-интерфейсами Kafka.

Этот разъем не проверен мной. Следуйте на свой страх и риск

Ниже приводится выдержка из документации Confluent по использованию соединителей сообщества с некоторыми акцентами и адаптациями. Другими словами, написано для Kafka Connects, не входит в Confluent Platform


1) Клонируйте репозиторий GitHub для разъема

$ git clone https://github.com/MSurendra/kafka-connect-solr

2) Построить банку с мавеном

Перейдите во вновь клонированное хранилище и выберите нужную версию. ( Этот разъем Solr не имеет выпусков, подобных Confluent ). Как правило, вы хотите оформить выпущенную версию.

$ cd kafka-connect-solr; mvn package

Здесь см. Установка плагинов

3) Найдите Uber JAR или каталог плагинов для соединителя

Мы копируем полученный вывод Maven из каталога target в один из каталогов в пути к подключаемому модулю рабочего Kafka Connect (свойство plugin.path).
Например, если путь к плагину включает каталог /usr/local/share/kafka/plugins, мы можем использовать один из следующих методов, чтобы сделать соединитель доступным в качестве плагина.

Как упомянуто в Confluent docs , опция export CLASSPATH=<some path>/kafka-connect-solr-1.0.jar будет работать, хотя plugin.path будет способом продвижения вперед (Kafka 1.0 +)

Вы должны знать, какую опцию использовать, основываясь на результате mvn package

Вариант 1) Один файл UAR JAR

С помощью этого Solr Connector мы получаем один файл с именем kafka-connect-solr-1.0.jar.

Мы копируем этот файл в каталог /usr/local/share/kafka/plugins:

$ cp target/kafka-connect-solr-1.0.jar /usr/local/share/kafka/plugins/

Вариант 2) Каталог зависимостей

(Это не относится к разъему Solr)

Если JAR-файлы коннектора собраны в подкаталоге целевых каталогов сборки, мы можем скопировать все эти JAR-файлы в каталог плагинов в /usr/local/share/kafka/plugins, например

$ mkdir -p /usr/local/share/kafka/plugins/kafka-connect-solr
$ cp target/kafka-connect-solr-1.0.0/share/java/kafka-connect-solr/* /usr/local/share/kafka/plugins/kafka-connect-solr/

Примечание

Обязательно установите плагин на всех компьютеров, на которых вы используете распределенные рабочие процессы Kafka Connect. Важно, чтобы каждый используемый вами соединитель был доступен на всех рабочих, поскольку Kafka Connect будет распределять задачи по соединителям среди всех рабочих


4) Запуск Kafka Connect

Если вы правильно установили plugin.path или export CLASSPATH, то вы можете использовать connect-standalone или connect-distributed с соответствующим файлом конфигурации для этого проекта Connect.


Относительно

нам потребуется некоторая очистка данных перед отправкой в ​​Solr

Это необходимо сделать с помощью отдельного процесса, такого как Kafka Streams, Storm или другого процесса, до Kafka Connect. Напишите свой преобразованный вывод во вторичную тему. Или напишите свой собственный процесс Kafka Connect Transform. Kafka Connect имеет очень ограниченные преобразования из коробки.

Также стоит упомянуть - JSON является единственным поддерживаемым форматом сообщений Kafka для этого соединителя Solr

...