kafka-connect возвращает 409 в распределенном режиме - PullRequest
0 голосов
/ 11 декабря 2018

Я использую распределенную установку kafka-connect.

Я тестировал с одной установкой машины / процесса (все еще в распределенном режиме), которая работала нормально, теперь я работаю с 3 узлами (и 3 процесса подключения), журналы не содержат ошибок, но когда я отправляю запрос s3-соединителя через 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"
    }
}

Ничто в журналах не указывает на проблему, и я действительно потерян здесь.

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

То же, что и для @OmriManor, в моем случае это была проблема с одним из узлов, вызвавшая петлю ребалансировки.Что я сделал, так это приостановил работу соединителя , затем я остановил все узлы, принимающие для одного, затем я смог удалить соединитель , так как один узел не вызывал петлю перебалансировки.

0 голосов
/ 28 марта 2019

У меня была такая же проблема с моей настройкой на Kubernetes.Проблема была в том, что у меня CONNECT_REST_ADVERTISED_HOST_NAME было установлено одинаковое значение на каждом из 16 узлов.Это вызывает постоянную проблему перебалансировки.Имейте уникальную ценность, и вы должны быть в порядке.

Решение для K8S, которое работает для меня:

- env:
  - name: CONNECT_REST_ADVERTISED_HOST_NAME
    valueFrom:
      fieldRef:
        fieldPath: status.podIP
...