Kafka Connect Api - 入门?
我想了解Kafka连接模块的开发生命周期。Kafka Connect Api - 入门?
以下http://kafka.apache.org/090/documentation.html#connect,我想写一个使用“连接API”的自定义Kafka连接模块,但我不知道从哪里开始。有没有什么简单的例子来说明如何做到这一点?项目设置等?
顺便提一句,我建立了这一个https://github.com/confluentinc/kafka-connect-jdbc,并试图运行它(在谷歌云上),但我发现错误 - 显然是缺少的依赖项,但我不知道要添加什么。当然,这可能只是应该在融合的平台上运行。如果它可以在其他地方运行,那么很棒但如果它不能,我想知道如何从头开始建立一个,因此我的问题。
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
这种错误最常见的原因是CLASSPATH的配置。对于Kafka Connect在运行时查找您的类,您需要将它们包含在类路径中。下面的文本直接取自documentation of Kafka connect:
所有这一切都需要安装一个新的插件是将其放置在卡夫卡连接进程的CLASSPATH。所有脚本运行卡夫卡连接将使用CLASSPATH环境变量,如果它被设置在被调用时,因此很容易与附加连接器的插件运行:
而如何做到这一点: export CLASSPATH=/path/to/my/connectors/* bin/connect-standalone standalone.properties new-custom-connector.properties
我还写了一个how to guide for Kafka Connect,你可能会发现有帮助。
本来可以添加这个作为评论,但是SO表示我没有足够的分数。无论如何,这个答案的目的是证明JDBC Connector可以在不安装整个Confluent包和模式注册表的情况下运行。
我能够在不安装Confluent平台(特别是模式注册表)的情况下运行Confluent的JDBC连接器。运行连接器时,您需要在类路径中使用四个Confluent库(common-config,common-metrics,common-utils和kafka-connect)。有关更详细的说明,请参阅https://prefrontaldump.wordpress.com/2016/05/02/using-confluents-jdbc-connector-without-installing-the-entire-platform/
有趣。谢谢! – ismisesisko
将kafka-clients.jar
更新为kafka-clients-0.10.0.0.jar
。旧版本不包含这个类:org/apache/kafka/common/config/ConfigDef$Recommender.class
您可以在这里下载: http://central.maven.org/maven2/org/apache/kafka/kafka-clients/0.10.0.0/kafka-clients-0.10.0.0.jar
是的,我已经阅读文档,我不得不设置类路径,但我仍然有问题。我猜想,也许这与更多的不涉及正确的依赖关系有关。你的指南看起来非常有用,谢谢你 - 这是我正在寻找的信息。 – ismisesisko
您是否可以确认可以在只有ZOOKEEPER&KAFKA和本地构建的JAR的处女系统上部署该JDBC连接器,还是有其他需要担心的事情? – ismisesisko
您还需要运行架构注册表。 JDBC连接器使用模式注册表来注册数据库的模式并跟踪其变化,例如删除一个表格等。如果您想试用Kafka Connect,最好的做法是从Confluent下载发行版。检查指南[这里](http://docs.confluent.io/2.0.1/quickstart.html#quickstart)。您需要启动并运行:1)Zookeeper,2)Kafka&3)架构注册表 – cpard