5

我在一组 Docker 容器中使用 Confluent 3.2,其中一个正在运行 kafka-connect 工作程序。

由于我不清楚的原因,我的四个连接器中的两个 - 具体来说,hpgraphsl 的MongoDB sink 连接器- 停止工作。我能够确定主要问题:连接器没有分配任何任务,可以通过调用GET /connectors/{my_connector}/status. 其他两个连接器(相同类型)没有受到影响,并且很高兴地产生输出。

我尝试了三种不同的方法来让我的连接器通过 REST API 再次运行:

  • 暂停和恢复连接器
  • 重新启动连接器
  • 使用相同的配置删除和创建同名的连接器

这些方法都没有奏效。我终于通过以下方式让我的连接器再次工作:

  • 以不同的名称删除和创建连接器,例如,my_connector_v2而不是my_connector

这里发生了什么?为什么我无法重新启动现有连接器并让它启动实际任务?kafka-connect 工作线程或 Kafka 代理上的某些与 kafka-connect 相关的主题中是否有任何陈旧数据需要清理?

我已经在特定连接器的 github repo 上提交了一个问题,但我觉得这实际上可能是与 kafka-connect 的内在函数相关的一般错误。有任何想法吗?

4

1 回答 1

2

我遇到过这个问题。如果 SinkTask 或 SourceTask 启动的资源较少,则可能会发生这种情况。

分配给工作人员的内存可能会减少一些时间。默认情况下,worker 分配了 250MB。请增加这个。下面是为在分布式模式下运行的工作程序分配 2GB 内存的示例。

KAFKA_HEAP_OPTS="-Xmx2G" sh $KAFKA_SERVICE_HOME/connect-distributed $KAFKA_CONFIG_HOME/connect-avro-distributed.properties

于 2017-04-12T14:59:12.203 回答