kafka-connect 在分布式模式下返回 409

Omr*_*nor 4 apache-kafka apache-kafka-connect confluent-platform

我正在运行 kafka-connect 分布式设置。

我正在使用单机/进程设置(仍处于分布式模式)进行测试,效果很好,现在我正在使用 3 个节点(和 3 个连接进程),日志不包含错误,但是当我提交 s3-connector 时通过rest-api请求,它返回:{"error_code":409,"message":"Cannot complete request because of a conflicting operation (e.g. worker rebalance)"}

当我停止其中一个节点上的 kafka-connect 进程时,我实际上可以提交作业并且一切正常。

我的集群中有 3 个代理,主题的分区号是 32。

这是我尝试启动的连接器:

{
    "name": "s3-sink-new-2",
    "config": {
        "connector.class": "io.confluent.connect.s3.S3SinkConnector",
        "tasks.max": "32",
        "topics": "rawEventsWithoutAttribution5",
        "s3.region": "us-east-1",
        "s3.bucket.name": "dy-raw-collection",
        "s3.part.size": "64000000",
        "flush.size": "10000",
        "storage.class": "io.confluent.connect.s3.storage.S3Storage",
        "format.class": "io.confluent.connect.s3.format.avro.AvroFormat",
        "schema.generator.class": "io.confluent.connect.storage.hive.schema.DefaultSchemaGenerator",
        "partitioner.class": "io.confluent.connect.storage.partitioner.TimeBasedPartitioner",
        "partition.duration.ms": "60000",
        "path.format": "\'year\'=YYYY/\'month\'=MM/\'day\'=dd/\'hour\'=HH",
        "locale": "US",
        "timezone": "GMT",
        "timestamp.extractor": "RecordField",
        "timestamp.field": "procTimestamp",
        "name": "s3-sink-new-2"
    }
}
Run Code Online (Sandbox Code Playgroud)

日志中没有任何内容表明有问题,我真的迷失在这里。

Woj*_*pka 5

我在 Kubernetes 上的设置遇到了同样的问题。问题是我在CONNECT_REST_ADVERTISED_HOST_NAME16 个节点中的每个节点上都设置了相同的值。它会导致不断的重新平衡问题。有独特的价值,你应该没问题。

K8S的解决方案,对我有用:

- env:
  - name: CONNECT_REST_ADVERTISED_HOST_NAME
    valueFrom:
      fieldRef:
        fieldPath: status.podIP
Run Code Online (Sandbox Code Playgroud)