使用 Kafka Connect Distributed 创建连接器返回 500 错误

Creating a connector with Kafka Connect Distributed returning 500 error

我正在努力从 Camus 迁移到 Kafka Connect。我正在研究 Kafka Connect 的实现,特别关注分布式模式。我能够在我假设与我的 Kafka 集群通信的本地机器上成功启动一个 worker。我还能够 运行 两个 GET 命令,例如 //connector-plugins,其中 return 是正确的 JSON。但是,当我尝试 POST 创建连接器的命令时,我收到 500 错误和超时。具体来说,我使用这个命令来POST进行测试:

curl -X POST -H "Content-Type: application/json" --data '{"name": "local-file-sink", "config": {"connector.class":"FileStreamSinkConnector", "tasks.max":"1", "file":"test.sink.txt", "topics":"myTopic" }}' localhost:8083/connectors

最终我得到了这样的回复:

{"error_code": 500, "message": "Request timed out"}

我不知道发生了什么事。来自我的 Kafka Connect 分布式工作人员的日志显示:

[2016-12-05 14:34:32,436] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:22:34:32 +0000] "GET /connector-plugins HTTP/1.1" 200 315  2 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:05:25,422] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:05:25 +0000] "GET /connector-plugins HTTP/1.1" 200 315  3 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:05:28,389] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:05:28 +0000] "GET /connector-plugins HTTP/1.1" 200 315  2 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:07:38,644] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:06:08 +0000] "GET /connectors HTTP/1.1" 500 48  90003 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:07:44,450] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:07:44 +0000] "GET /connector-plugins HTTP/1.1" 200 315  1 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:13:06,703] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:11:36 +0000] "POST /connectors HTTP/1.1" 500 48  90003 (org.apache.kafka.connect.runtime.rest.RestServer:60)
[2016-12-05 15:15:38,506] INFO 0:0:0:0:0:0:0:1 - - [05/Dec/2016:23:14:08 +0000] "POST /connectors HTTP/1.1" 500 48  90005 (org.apache.kafka.connect.runtime.rest.RestServer:60)

您可以在其中查看错误代码和命令。

我想我的主要问题是:

  1. 我怎样才能更好地调试 Kafka Connect 以便尝试修复这个问题?
  2. 我做的有没有明显错误的地方?
  3. 是否有关于将 Kafka Connect 分布式工作者和连接器连接到 运行 的分步文档或博客文章?我还没有真正看到任何甚至最佳实践类型的文档?也许我太早采用了。

我期待收到社区的回音,感谢您的帮助!

我能够解决这个问题。我的客户端和集群上都是 运行 Confluent Platform 3.0.1。我将我的集群升级到 Confluent Platform 3.1.1,并将我的客户端升级到新版本。我能够启动集群。此外,您可以通过阅读 Kafka 用户组中关于同一问题的此线程来了解有关调试 Kafka Connect 的更多信息:

http://mail-archives.apache.org/mod_mbox/kafka-users/201612.mbox/%3cA22A7CDA-21D5-4E58-BD38-3796065FD6A5@trulia.com%3e

希望对其他人有所帮助。