1

致力于设置从我们的 RDS Postgres 9.6 运行到 Redhift 的 Kafka。使用https://blog.insightdatascience.com/from-postgresql-to-redshift-with-kafka-connect-111c44954a6a上的指南,我们已经设置了所有基础设施,并且正在努力全面设置 Confluent。我收到 ava.lang.IllegalArgumentException 的错误:组数必须为正。尝试设置东西时。这是我的配置文件:

name=source-postgres
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=16

connection.url= ((correct url and information here))
mode=timestamp+incrementing
timestamp.column.name=updated_at
incrementing.column.name=id
topic.prefix=postgres_

完整错误:

/usr/local/confluent$ /usr/local/confluent/bin/connect-standalone /usr/local/confluent/etc/schema-registry/connect-avro-standalone.properties /usr/local/confluent/etc/kafka- connect-jdbc/source-postgres.properties SLF4J:类路径包含多个 SLF4J 绑定。SLF4J:在 [jar:file:/usr/local/confluent/share/java/kafka-serde-tools/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:在 [jar:file:/usr/local/confluent/share/java/kafka-connect-elasticsearch/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J 中找到绑定:找到绑定在 [jar:file:/usr/local/confluent/share/java/kafka-connect-hdfs/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:在 [ jar:文件:/usr/local/confluent/share/java/kafka/slf4j-log4j12-1.7.21.jar!http://www.slf4j.org/codes.html#multiple_bindings解释一下。SLF4J:实际绑定的类型为 [org.slf4j.impl.Log4jLoggerFactory] ​​[2018-01-29 16:49:49,820] INFO StandaloneConfig 值:access.control.allow.methods = access.control.allow.origin = bootstrap。服务器 = [localhost:9092] internal.key.converter = 类 org.apache.kafka.connect.json.JsonConverter internal.value.converter = 类 org.apache.kafka.connect.json.JsonConverter key.converter = 类 io。 confluent.connect.avro.AvroConverter offset.flush.interval.ms = 60000 offset.flush.timeout.ms = 5000 offset.storage.file.filename = /tmp/connect.offsets rest.advertised.host.name = null 休息。广告.port = null rest.host.name = null rest.port = 8083 task.shutdown.graceful.timeout。305] INFO Herder 已启动 (org.apache.kafka.connect.runtime.standalone.StandaloneHerder:72) [2018-01-29 16:49:50,305] INFO 正在启动 REST 服务器 (org.apache.kafka.connect.runtime.rest .RestServer:98) [2018-01-29 16:49:50,434] INFO jetty-9.2.15.v20160210 (org.eclipse.jetty.server.Server:327) Jan 29, 2018 4:49:51 PM org. glassfish.jersey.internal.Errors logErrors 警告:已检测到以下警告:警告:org.apache.kafka.connect.runtime.rest.resources.ConnectorsResource 中的(子)资源方法 listConnectors 包含空路径注释。警告:org.apache.kafka.connect.runtime.rest.resources.ConnectorsResource 中的(子)资源方法 createConnector 包含空路径注释。警告:org.apache.kafka.connect.runtime.rest.resources 中的(子)资源方法 listConnectorPlugins。ConnectorPluginsResource 包含空路径注释。警告:org.apache.kafka.connect.runtime.rest.resources.RootResource 中的(子)资源方法 serverInfo 包含空路径注释。[2018-01-29 16:49:51,385] 信息开始 oejsServletContextHandler@5aabbb29{/,null,AVAILABLE} (org.eclipse.jetty.server.handler.ContextHandler:744) [2018-01-29 16:49:51,409 ] INFO Started ServerConnector@54dab9ac{HTTP/1.1}{0.0.0.0:8083} (org.eclipse.jetty.server.ServerConnector:266) [2018-01-29 16:49:51,409] INFO Started @2019ms (org. eclipse.jetty.server.Server:379) [2018-01-29 16:49:51,410] INFO REST 服务器正在监听http://127.0.0.1:8083/,广告网址 http://127.0.0.1:8083/ connect.jdbc.JdbcSourceConnector key.converter = null name = source-postgres tasks.max = 16 value.converter = null (org.apache.kafka.connect.runtime.SourceConnectorConfig:180) [2018-01-29 16:49: 52,209] 错误在连接器错误后停止 (org.apache.kafka.connect.cli.ConnectStandalone:102) java.lang.IllegalArgumentException:组数必须为正。在 org.apache.kafka.connect.util.ConnectorUtils.groupPartitions(ConnectorUtils.java:45) 在 io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:123) 在 org.apache.kafka.connect.runtime .Worker.connectorTaskConfigs(Worker.java:193) 在 org.apache.kafka.connect.runtime.standalone.StandaloneHerder.recomputeTaskConfigs(StandaloneHerder.java:251) 在 org.apache.kafka.connect。

我们在 RDS Postgres (9.6) 和 Redshift 之间使用 DMS。它一直在失败,而且很悲惨,而且几乎在这一点上几乎是非常昂贵的,所以我们正在将其作为一种可能的解决方案。我在这里有点困难,真的很想在这方面得到一些帮助。

4

2 回答 2

0

我正在研究与此非常相似的问题,我发现如果连接器没有配置来告诉它要拉什么,它只会出错。尝试将以下内容添加到您的连接器配置中:

table.whitelist=

然后指定要抓取的表格列表。

于 2018-03-29T14:54:44.803 回答
0

我在JDBC 源连接器作业中遇到了这个错误。问题是该table.whitelist设置区分大小写,即使底层数据库不是(RDBMS 是 MS Sql Server)。

所以我的桌子是tableName,我有"table.whitelist": "tablename",。这失败了,我得到了上述错误。更改它以"table.whitelist": "tableName",修复错误。

尽管事实上SELECT * FROM tablename两者SELECT * FROM tableName都在 MS Sql Manager 中工作。

于 2018-05-29T18:14:38.440 回答