【问题标题】:How to integrate non-Confluent connectors with Apache Kafka Connect如何将非 Confluent 连接器与 Apache Kafka Connect 集成
【发布时间】:2018-05-16 14:28:06
【问题描述】:

我们需要从 Kafka Stream 获取数据流,我们的目标是将这些数据推送到 SOLR。

我们做了一些阅读,但我们发现市场上有很多可用的 Kafka Connect 解决方案,但问题是我们不知道哪个是最好的解决方案以及如何实现。

选项有:

  1. 使用 Solr 连接器与 Kafka 连接。
  2. 使用 Apache Storm,因为它直接提供与 Solr 集成的支持。

没有为上述选项提供太多文档或深入信息。

谁能告诉我

我们如何在不使用 Confluent 的情况下使用 Solr 连接器并与 Kafka 流集成?
Solr-Kafka 连接器https://github.com/MSurendra/kafka-connect-solr

另外,关于 Apache Storm, Apache Storm 是否有可能接受 Kafka Stream 并将其推送到 Solr,尽管在将其推送到 Solr 之前我们需要对数据进行一些清理?

【问题讨论】:

  • “汇合”是什么意思?像 Kafka Connect 这样的东西对于 Apache Kafka 来说是通用的,而不是特定于 Confluent 平台的。也许更新您的问题以明确说明您不想使用它的确切内容和原因,以便答案可以为您提供最好的帮助。
  • Confluent 没有 Solr 连接器,所以我不确定如果你使用它会有多大帮助
  • 您已经拥有 Storm 了吗?您在使用 Kafka Spout 和其他 Solr 处理器时遇到什么困难?
  • @RobinMoffatt,请找到 confluent 的链接。即使我对 Apache Kafka 还是很陌生 - confluent.io/product/connectors
  • @cricket_007,请找到solr sink连接器的链接:confluent.io/product/connectors

标签: solr apache-kafka apache-storm apache-kafka-connect


【解决方案1】:

我在这里避开 Storm,因为问题主要是关于 Kafka Connect

CAVEAT - 问题中的这个 Solr 连接器使用 Kakfa 0.9.0.1 依赖项,因此,它不太可能与最新的 Kafka API 一起使用。

此连接器未经我测试。风险自负

以下是Confluent's documentation on using community connectors的摘录,有一些强调和改编。换句话说,是为 Confluent Platform 中未包含的 Kafka Connects 编写的。


1) 克隆连接器的 GitHub 存储库

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

2) 用maven构建jar

更改为新克隆的 repo,然后签出您想要的版本。 (This Solr connector has no releases like the Confluent ones)。 您通常需要签出已发布的版本。

$ cd kafka-connect-solr; mvn package

从这里看Installing Plugins

3) 找到连接器的 uber JAR 或插件目录

我们将target 目录中生成的 Maven 输出复制到 Kafka Connect 工作线程的插件路径(plugin.path 属性)上的目录之一。
例如,如果插件路径包含/usr/local/share/kafka/plugins 目录,我们可以使用以下技术之一使连接器作为插件可用。

As mentioned in the Confluent docsexport CLASSPATH=<some path>/kafka-connect-solr-1.0.jar 选项会起作用,尽管plugin.path 将是前进的方向(Kafka 1.0+)

你应该知道根据mvn package的结果使用哪个选项

选项 1) 单个 uber JAR 文件

使用这个 Solr 连接器,我们得到一个名为 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.pathexport CLASSPATH,那么您可以将connect-standaloneconnect-distributed 与该Connect 项目的相应配置文件一起使用。


关于,

在将数据推送到 Solr 之前,我们需要对数据进行一些清理

您需要在 Kafka Connect 之前使用单独的进程(如 Kafka Streams、Storm 或其他进程)来执行此操作。将转换后的输出写入次要主题。或者编写自己的 Kafka Connect 转换流程。 Kafka Connect has very limited transformations 开箱即用。

还值得一提 - JSON seems to be the only supported Kafka message format for this Solr connector

【讨论】:

  • 提前道歉,如果我问愚蠢的问题。为了从外部 kafka 生产者流中读取输入,我需要配置一个源连接器来监听并推送到接收器连接器还是接收器连接器自动监听它。
  • 接收器连接器将从属性文件中定义的预先存在的主题的逗号分隔列表中读取
猜你喜欢
  • 2020-02-05
  • 1970-01-01
  • 2018-12-29
  • 2021-11-11
  • 2021-01-13
  • 2022-12-16
  • 2022-05-31
  • 2018-10-31
  • 2017-11-04
相关资源
最近更新 更多