我通过发出“ ./bin/confluent start”命令启动了confluent套件。 然后我使用kafka connect将kafka数据接收到mysql中。
通过执行以下命令,我可以在独立模式下很好地运行kafka connect:
./ 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) 在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(本机方法)位于 sun.nio.ch.Net.bind(Net.java:433)在 sun.nio.ch.Net.bind(Net.java:425)
怎么了?如何切换为使用kafka Connect分布式模式?谢谢!
答案 0 :(得分:4)
运行confluent start
时,您已经以分布式模式启动了Kafka Connect。因此,您可以使用该实例,也可以在属性文件中为要运行的第二个实例定义一个新的REST端口。
无论哪种方式,您都将您的接收器配置提交给通过REST分发的Kafka Connect,而不是在启动时将其作为属性参数传递(不同于独立配置)。
答案 1 :(得分:0)
通过以下方式引导所有融合服务后
./confluent start
确保停止默认的kafka连接通过
./confluent stop connect
开始自定义kafka-connect之前。