2016-03-21 2 views
2

Я хотел бы понять жизненный цикл разработки для модулей подключения Kafka.Kafka Connect Api - Начало работы?

Следующее http://kafka.apache.org/090/documentation.html#connect, я хотел бы написать пользовательский модуль подключения Kafka, используя «connect api», но я не знаю, с чего начать. Есть ли минимальные примеры того, как это сделать? Настройка проекта и т. Д.?

Кстати, я построил этот https://github.com/confluentinc/kafka-connect-jdbc и попытался запустить его (в облаке Google), но я нахожу ошибки - явно недостающую зависимость, но я не знаю, что добавить. Конечно, может случиться так, что это только должно работать на конфлюентной платформе. Если бы он мог бежать в другом месте, тогда здорово. Но если это не так, я хотел бы знать, как построить один с нуля, следовательно, мой вопрос.

java.lang.NoClassDefFoundError: org/apache/kafka/common/config/ConfigDef$Recommender 
    at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:66) 
    at org.apache.kafka.connect.runtime.Worker.addConnector(Worker.java:186) 
    at org.apache.kafka.connect.runtime.standalone.StandaloneHerder.startConnector(StandaloneHerder.java:197) 
    at org.apache.kafka.connect.runtime.standalone.StandaloneHerder.putConnectorConfig(StandaloneHerder.java:145) 
    at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:85) 

Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.config.ConfigDef$Recommender 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 5 more 

ответ

2

Наиболее распространенной причиной такого рода ошибок является конфигурация вашего CLASSPATH. Чтобы Kafka Connect обнаружил ваши классы во время выполнения, вам необходимо включить их в свой путь к классам. Следующий текст взят непосредственно из documentation of Kafka connect:

Все, что требуется, чтобы установить новый плагин, чтобы поместить его в CLASSPATH процесса Кафка Connect. Все скрипты для запуска Кафка Connect будет использовать переменную CLASSPATH среды, если он установлен, когда они вызываются, что делает его легко работать с дополнительными соединительными плагинов:

А как это сделать: export CLASSPATH=/path/to/my/connectors/* bin/connect-standalone standalone.properties new-custom-connector.properties

Я также написал how to guide for Kafka Connect, что может показаться вам полезным.

+0

да, я читал документы, и я был к классам, но я по-прежнему сталкиваются с проблемами. Я предположил, что, возможно, это больше связано с тем, чтобы в первую очередь не включать правильные зависимости. Ваш гид выглядит очень полезным, спасибо за это - вот такая информация, которую я искал. – ismisesisko

+0

Можете ли вы подтвердить, что можно развернуть этот разъем JDBC на девственной системе только с ZOOKEEPER & KAFKA и локально построенным JAR или есть другие вещи, о которых можно беспокоиться? – ismisesisko

+0

вам также нужно запустить Registry Schema. Разъем JDBC использует реестр Schema для регистрации схемы базы данных и отслеживания изменений, например. удаление таблицы и т. д. Лучшее, что нужно сделать, если вы хотите поэкспериментировать с Kafka Connect, - загрузить дистрибутив из Confluent. Проверьте руководство [здесь] (http://docs.confluent.io/2.0.1/quickstart.html#quickstart).Вам нужно запустить и запустить: 1) Zookeeper, 2) Kafka & 3) Schema Registry – cpard

-1

Добавить комментарий к этому объявлению, но SO указал, что у меня недостаточно очков. Во всяком случае, точкой этого ответа является демонстрация того, что JDBC-коннектор может работать без установки всего реестра Confluent и реестра схем.

Я смог подключить JDBC-разъем Confluent, работающий без установки платформы Confluent (в частности, реестра схем). Есть четыре библиотеки Confluent, которые вам нужны в пути к классам при запуске соединителя (общие-config, common-metrics, common-utils и kafka-connect). Для получения более подробных инструкций см. https://prefrontaldump.wordpress.com/2016/05/02/using-confluents-jdbc-connector-without-installing-the-entire-platform/

+0

Интересно. Благодаря! – ismisesisko

Смежные вопросы