Kafka接收器连接器:即使在重新启动

时间:2017-04-06 11:57:48

标签: mongodb docker apache-kafka apache-kafka-connect confluent

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

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

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

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

没有一种方法有效。我终于让我的连接器再次运行:

  • 使用其他名称删除和创建连接器,例如my_connector_v2而不是my_connector

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

我在特定连接器的github repo上有filed an issue,但我觉得这可能实际上是与kafka-connect的内在函数相关的一般错误。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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