Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 连接器中的任务何时移动到未分配状态?_Apache Kafka_Apache Kafka Connect - Fatal编程技术网

Apache kafka 连接器中的任务何时移动到未分配状态?

Apache kafka 连接器中的任务何时移动到未分配状态?,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,我在分布式模式下运行CP3.2,一些连接器甚至定义为“tasks.max”:“1”具有任务“UNASSIGNED”状态。我增加了分配给worker的内存,重新启动worker解决了我的问题,或者添加了一个worker解决了这个问题 如果“tasks.max”>1中有一些任务处于“未分配”状态,对我来说没有问题,但如果我只定义了一个任务,它应该处于“运行”状态 但我需要了解在什么情况下任务会进入“未分配”状态,以及如何解决这个问题(使其运行) 问候, Aradhya如果分配运行此连接器任务的工作任

我在分布式模式下运行CP3.2,一些连接器甚至定义为“tasks.max”:“1”具有任务“UNASSIGNED”状态。我增加了分配给worker的内存,重新启动worker解决了我的问题,或者添加了一个worker解决了这个问题

如果“tasks.max”>1中有一些任务处于“未分配”状态,对我来说没有问题,但如果我只定义了一个任务,它应该处于“运行”状态

但我需要了解在什么情况下任务会进入“未分配”状态,以及如何解决这个问题(使其运行)

问候,

Aradhya

如果分配运行此连接器任务的工作任务成功关闭,则任务将进入未分配状态。这与此连接器应生成的任务总数无关(
tasks.max
property)。您可以按照
AbstractHerder
中对
onShutdown
方法的调用在代码中跟踪这一点。转换到未分配状态需要运行的辅助任务未发生故障或引发异常,并且已触发正常关闭


连接器任务可能在其常规迭代循环的一开始就停止,这有什么原因吗?你能再多给我一点信息吗?它是源还是汇?

在我的例子中,我的连接器变为未分配的,只是因为我并行运行了2个或4个连接器,而debezium开始处理连接器时,它变得混乱,停止处理该连接器,即在我的例子中,连接器变为未分配的状态

  • 可能这只是因为我的所有连接器都在从不同位置的不同-2数据库收集大量数据,当我检查debezium日志时,它显示正在停止连接器,最后如果debizium的容差限制超过它,它将停止MYSQL连接
为了解决此问题,我只需重新启动docker compose或connector,这两种方法都有助于我将连接器置于运行状态:

docker compose重新启动


curl-X POST localhost:8083/connectors//restart

有时我的接收器连接器将处于未分配状态,即使工作进程已启动并正在运行。我觉得在工人较少的机器上运行更多的连接器也会导致这种情况。目前我有3台工作机器,总共运行6-7个任务。如果我将总任务数增加到10个以上,我就能够看到未分配状态。同样,了解我们所讨论的连接器类型将是一件好事。此外,在本主题中,将有助于具体了解工人是什么。根据您的描述,我理解您将在每个节点中启动的java进程称为worker。这是正确的。但这也不同于辅助任务,辅助任务是提交给特定辅助任务的任务执行者的可运行任务。当前,此执行器正在缓存线程,但未绑定。这意味着线程将执行连接器的任务,而不管工作线程的当前负载如何。此外,正如我前面提到的,如果任务在启动时发出关闭信号,则任务在进入运行状态之前将进入未分配状态。在任何情况下,为了确定是否存在由于框架原因而导致的非预期状态转换,我们需要更多关于试图在工作进程上运行什么的信息。