我在一组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存储库上有filed an issue,但是我觉得这实际上可能是与kafka-connect内在函数有关的一般错误。有任何想法吗?

    最佳答案

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

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

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

    关于mongodb - Kafka接收器连接器:即使重新启动也未分配任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43254567/

    10-11 10:51