Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jdbc 设置多个kafka连接接收器_Jdbc_Apache Kafka_Apache Kafka Connect_Confluent Platform - Fatal编程技术网

Jdbc 设置多个kafka连接接收器

Jdbc 设置多个kafka连接接收器,jdbc,apache-kafka,apache-kafka-connect,confluent-platform,Jdbc,Apache Kafka,Apache Kafka Connect,Confluent Platform,我正在将数据从postgreSQL流式传输到HDFS。我在HDP2.6沙盒上设置了confluent环境。我为postgreSQL配置的jdbc源代码是 name=jdbc_1 connector.class=io.confluent.connect.jdbc.JdbcSourceConnector tasks.max=1 connection.url=jdbc:postgresql://host:port/db?currentSchema=schema&user=user&pa

我正在将数据从postgreSQL流式传输到HDFS。我在HDP2.6沙盒上设置了confluent环境。我为postgreSQL配置的jdbc源代码是

name=jdbc_1
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:postgresql://host:port/db?currentSchema=schema&user=user&password=password
mode=timestamp
timestamp.column.name=col1
validate.non.null=false
topic.prefix=psql-
连接的所有其他属性也很好,我正在运行它

./bin/connect-standalone ./etc/kafka/connect-standalone.properties ./etc/kafka-connect-jdbc/source.properties
它可以根据数据库中表的数量创建主题

psql-table1
psql-table2
现在我想在所有主题上运行HDFS接收器,为postgreSQL数据库中的每个表创建单独的目录。 但当我用命令运行HDFS sink时

./bin/connect-standalone ./etc/kafka/connect-standalone.properties ./etc/kafka-connect-hdfs/hdfs-postGres.properties
通过运行源代码,我得到了一个错误

ERROR Stopping after connector error (org.apache.kafka.connect.cli.ConnectStandalone:113)
org.apache.kafka.connect.errors.ConnectException: Unable to start REST server
at org.apache.kafka.connect.runtime.rest.RestServer.start(RestServer.java:214)
at org.apache.kafka.connect.runtime.Connect.start(Connect.java:53)
at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:95)
Caused by: java.net.BindException: Address already in use
at 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)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:331)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:299)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:398)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.apache.kafka.connect.runtime.rest.RestServer.start(RestServer.java:212)
... 2 more
如果我停止源连接并启动接收器,它工作正常。
任何人都可以帮助我设置多个接收器连接器。

Kafka Connect在端口8083上启动rest服务器

如果在一台机器上运行多个独立连接器,则需要使用
rest.port
属性对其进行更改


或者,您可以运行
connect distributed
,然后将源和接收器配置分别发布为在单个connect服务器上运行的JSON有效负载,这样您就不会有此
地址已在使用中
问题

Kafka Connect在端口8083上启动rest服务器

如果在一台机器上运行多个独立连接器,则需要使用
rest.port
属性对其进行更改


或者,您可以运行
connect distributed
,然后将源和接收器配置分别发布为在单个connect服务器上运行的JSON有效负载,这样您就不会有此
地址已在使用中
问题

如果你可以共享任何资源,那么最好的方法是什么呢?我在这里列出了两个选项,所以不确定你想要哪一个。我的建议是运行
connectdistributed
,而不是
connectstandalone
。。。etc/kafka文件夹还包含一个分布式属性文件,关于Connect的Apache文档部分应该是一个参考点,通过添加rest.port选项,它工作得很好。但是我想知道创建多个接收器的最佳实践。我们应该为每个接收器创建单独的独立属性还是有其他方法?我个人为每个主题/连接器组合部署一个配置。每个属性都必须是独立的。你不能将Postgres和HDFS放在同一个JSON Payloads中如果你可以共享任何资源,那么最好的方法是什么?我在这里列出了两个选项,所以不确定你想要哪一个。我的建议是运行
connectdistributed
,而不是
connectstandalone
。。。etc/kafka文件夹还包含一个分布式属性文件,关于Connect的Apache文档部分应该是一个参考点,通过添加rest.port选项,它工作得很好。但是我想知道创建多个接收器的最佳实践。我们应该为每个接收器创建单独的独立属性还是有其他方法?我个人为每个主题/连接器组合部署一个配置。每个属性都必须是独立的。您不能将Postgres和HDFS放在同一个JSON负载中