【问题标题】:kafka connect and kafka host requirementskafka connect 和 kafka 主机要求
【发布时间】:2020-01-19 17:29:53
【问题描述】:

我正在使用 Couchbase 接收器连接器。 CB 和 kafka 位于不同 AWS 区域的 2 个不同 EC2 实例中。我正在关注这些文档:

  1. https://docs.couchbase.com/kafka-connector/current/quickstart.html
  2. https://kafka.apache.org/documentation/#connect_configuring

基于这些,我认为 connect 必须在也安装了 kafka 的主机上运行。我的连接可以在远程主机上运行,​​以便我从远程 kafka 读取并将消息接收到远程 CB 存储桶中吗?有没有专门针对此的文档?

另外,我收到以下错误:

        at org.apache.kafka.connect.util.ConvertingFutureCallback.result(ConvertingFutureCallback.java:79)
    at org.apache.kafka.connect.util.ConvertingFutureCallback.get(ConvertingFutureCallback.java:66)
    at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:118)
Caused by: org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches com.couchbase.connect.kafka.CouchbaseSinkConnector, available connectors are: PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='2.3.0', encodedVersion=2.3.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', version='2.3.0', encodedVersion=2.3.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', version='2.3.0', encodedVersion=2.3.0, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='2.3.0', encodedVersion=2.3.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='2.3.0', encodedVersion=2.3.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='2.3.0', encodedVersion=2.3.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='2.3.0', encodedVersion=2.3.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='2.3.0', encodedVersion=2.3.0, type=source, typeName='source', location='classpath'}
    at org.apache.kafka.connect.runtime.isolation.Plugins.connectorClass(Plugins.java:180)
    at org.apache.kafka.connect.runtime.isolation.Plugins.newConnector(Plugins.java:152)
    at org.apache.kafka.connect.runtime.AbstractHerder.getConnector(AbstractHerder.java:519)
    at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:289)
    at org.apache.kafka.connect.runtime.standalone.StandaloneHerder.putConnectorConfig(StandaloneHerder.java:192)
    at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:115)

【问题讨论】:

  • Apache Kafka Connect 可以在不同的主机上运行,​​甚至是首选设置

标签: apache-kafka couchbase apache-kafka-connect


【解决方案1】:

我认为 connect 必须在安装了 kafka 的主机上运行。

有 Kafka 库,是的,但不是实际运行的代理,没有。

换句话说,您无法将 Kafka Connect 作为单独的服务下载,因此当您获得 Kafka 库时,它已经附带了它。

我的连接能否在远程主机上运行,​​以便我从远程 kafka 读取并将消息接收到远程 CB 存储桶中?

这是推荐的部署。类似于您不会在代理上运行正常的生产者和消费者。 Kafka Connect 应该没有什么不同。

引导服务器和 couchbase 连接字符串将是它们各自的远程地址

文档在此处有点

另外,我收到以下错误:Failed to find any class that implements Connector and which name matches com.couchbase.connect.kafka.CouchbaseSinkConnector

如果您查看available connectors are: 的列表,您会发现您的列表没有列出。这意味着您没有使用库正确加载连接器属性的plugin.path。

正如 Couchbase 文档所述:

修改plugin.path属性以包含kafka-connect-couchbase-<version>.jar的父目录

您还可以在发布配置之前使用 /connector-plugins 端点验证您的连接器是否已加载

【讨论】:

    【解决方案2】:

    Kafka Connect 无法找到您的连接器。您可以将 plugin.path 设置为指向您的连接器 jar 文件,也可以将连接器 jar 文件复制到 kafka lib 目录中。

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 1970-01-01
      • 2019-08-19
      • 2019-07-02
      • 2019-04-18
      • 2017-11-07
      • 2018-02-19
      • 2018-09-30
      • 2020-05-28
      相关资源
      最近更新 更多