Kafka连接群集设置或启动连接工作者

Kal*_*m M 5 apache-kafka confluent apache-kafka-connect

我正在通过kafka connect,我正在尝试获取这些概念.

让我们说我有kafka集群(节点k1,k2和k3)设置并且它正在运行,现在我想在不同的节点中运行kafka connect worker,比如分布式模式下的c1和c2.

几个问题.

1)要在分布式模式下运行或启动kafka connect,我需要使用../bin/connect-distributed.shkakfa集群节点中可用的命令,所以我需要从任何一个kafka集群节点启动kafka connect?或者我启动kafka connect的任何节点都需要有kafka二进制文件才能使用../bin/connect-distributed.sh

2)我需要将我的连接器插件复制到我执行第1步的任何kafka集群节点(或所有集群节点?)?

3)在工作节点上启动jvm进程之前,kafka如何将这些连接器插件复制到工作节点?因为插件是具有我的任务代码的插件,需要将其复制到worker才能在worker中启动进程.

4)我是否需要在连接群集节点c1和c2中安装任何东西,比如需要安装java或任何相关的kafka连接?

5)在某些地方,它说使用汇合平台,但我想先用apache kafka connect启动它.

有些人可以通过一些亮点甚至指向一些资源也会有所帮助.

谢谢.

Gio*_*ous 7

1)为了拥有高可用性的kafka-connect服务,您需要connect-distributed.sh在两台具有相同功能的不同计算机上运行至少两个实例group.id.您可以在此处找到有关每个工作人员配置的更多详细信息.为了提高性能,Connect应独立于代理和Zookeeper机器运行.

2)是的,您需要将所有连接器放在您计划运行kafka-connect的每台计算机上plugin.path(通常位于下方/usr/share/java/).

3)kafka-connect将在启动时加载连接器.你不需要处理这个.请注意,如果您的kafka-connect实例正在运行并且添加了新连接器,则需要重新启动该服务.

4)您需要在所有计算机上安装Java.对于Confluent Platform,特别是:

此版本的Confluent Platform支持Java 1.7和1.8(目前不支持Java 1.9).您应该使用Garbage-First(G1)垃圾收集器运行.有关更多信息,请参阅支持的版本和互操作性.

5)这取决于.Confluent由Apache Kafka的原始创建者创建,它是一个更完整的发行版,添加了模式管理,连接器和客户端.它还附带KSQL,如果您需要对某些事件采取行动,它非常有用.汇编只是在Apache Kafka发行版之上添加,它不是修改版本.


Kal*_*m M 5

Giorgos给出的答案是正确的。我跑了几个连接器,现在我更好地理解了。

我只是想换个说法。

在 Kafka connect 中涉及到两件事,一个是 Worker,第二个是连接器。 下面是有关运行分布式 Kafka Connect 的详细信息。

Kafka connect Worker 是一个 Java 进程,连接器/连接任务将在其上运行。所以第一件事是我们需要启动worker,要运行/启动一个worker,我们需要在该机器上安装java,然后我们需要Kafka连接相关的sh/bat文件来启动将由kafka connect worker使用的worker和kafka libs,为此我们只需在工作机器中复制/安装 Kafka,我们还需要复制所有连接器和连接任务相关的 jars/依赖项,如下面工作属性文件中定义的那样,现在工作机器已准备就绪,要启动worker,我们需要调用./bin/connect-distributed.sh ./config/connect-distributed.properties,这里connect-distributed.properties 将有worker 的配置。同样的事情必须在我们需要运行 Kafka connect 的每台机器上重复。

现在工作进程在所有机器上运行,woker 配置将具有 group.id 属性,具有相同属性值的工作人员将形成一个工作组/集群。

每个工作进程将公开其余端点(默认为http://localhost:8083/connectors),要在正在运行的工作人员上启动/启动连接器,我们需要根据工作人员将的给定配置执行 http-post 连接器配置 json启动连接器和上述组/集群工作器中的任务数。

示例:连接帖子,

curl -X POST -H "Content-Type: application/json" --data '{"name": "local-file-sink", "config": {"connector.class":"FileStreamSinkConnector", "tasks.max":"3", "file":"test.sink.txt", "topics":"connect-test" }}' http://localhost:8083/connectors
Run Code Online (Sandbox Code Playgroud)