Настройка нескольких кафок, подключение стоков - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над потоковой передачей данных из postgreSQL в HDFS.У меня была настроенная среда на песочнице HDP 2.6.Мои исходные конфиги jdbc для postgreSQL:

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 с помощью команды

./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

, и если я прекращаю соединение с источником и запускаю приемник, он работает нормально.Любой может помочь мне в этом, как я могу установить несколько разъемов приемника.

1 Ответ

0 голосов
/ 25 сентября 2018

Kafka Connect запускает сервер отдыха на порту 8083.

Если вы запускаете более одного автономного соединителя на одном компьютере, его необходимо изменить с помощью свойства rest.port

Иливы можете запустить connect-distributed, а затем ПОСТАВИТЬ свои конфигурации источника и приемника по отдельности как полезные нагрузки JSON, работающие на одном сервере Connect, тогда у вас не будет этой проблемы Address already in use.

...