我通过问题"./bin/confluent start"命令启动了confluent suite。 然后我使用 kafka connect 将 kafka 数据下沉到 mysql 中。
我可以通过执行以下命令在独立模式下很好地运行 kafka 连接:
./bin/connect-standalone ./etc/schema-registry/connect-avro-standalone.properties ./etc/kafka-connect-jdbc/adstats-jdbc-sink.properties
然后我关闭上面的命令并通过命令切换到分布式模式:
./bin/connect-distributed ./etc/schema-registry/connect-avro-distributed.properties ./etc/kafka-connect-jdbc/adstats-jdbc-sink.properties
它报告了以下异常:
[2018-08-09 14:51:56,951] 错误无法启动连接 (org.apache.kafka.connect.cli.ConnectDistributed:108( org.apache.kafka.connect.errors.ConnectException: 无法启动 REST 服务器位于 org.apache.kafka.connect.runtime.rest.RestServer.start(RestServer.java:214( at org.apache.kafka.connect.runtime.Connect.start(Connect.java:53( 在 org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:106( 由以下原因引起:java.net.BindException:地址已在 sun.nio.ch.Net.bind0(Native Method( at sun.nio.ch.Net.bind(Net.java:433( at sun.nio.ch.net.bind(Net.java:425(
怎么了?如何切换到使用 kafka 连接分布式模式?谢谢!
当你运行confluent start
时,你已经在分布式模式下启动了Kafka Connect。因此,您可以使用该实例,也可以在属性文件中为要运行的第二个实例定义新的 REST 端口。
无论哪种方式,您都可以将接收器配置提交到通过 REST 分发的 Kafka Connect,而不是在启动时将其作为属性参数传递(与独立配置不同(。
通过引导所有融合服务后
./confluent start
确保停止默认的 Kafka 连接方式
./confluent stop connect
在开始自定义 Kafka-Connect 之前。