Конфлюент HttpSinkConnector дает ошибку, что фактор репликации равен 3, когда он упоминается как 1 везде - PullRequest
0 голосов
/ 27 апреля 2020

Я использую Confluent HttpSinkConnector и выполняю действия, указанные на этой странице: https://docs.confluent.io/current/connect/kafka-connect-http/index.html

Я обновил файл свойств мойки коннектора после проверки всех сведений о свойствах, отображаемых в Центре управления стр. Мой окончательный файл свойств выглядит следующим образом:

name = HttpSink
connector.class = io.confluent.connect.http.HttpSinkConnector
tasks.max = 1
value.converter = org.apache.kafka.connect.storage.StringConverter
topics = http-messages
http.api.url = http://localhost:8080/api/messages
request.method = post
auth.type = none
reporter.result.topic.replication.factor = 1
reporter.result.topic.partitions = 1
reporter.bootstrap.servers = localhost:9092
confluent.topic.bootstrap.servers = localhost:9092
confluent.topic = http-messages
confluent.topic.replication.factor = 1

Я также проверил, что "http-messages" topi c уже создана и его конфигурация показана в Центре управления следующим образом:

Overview     MessagesSchemaConfiguration
name     http-messages
partitions     1
compression.type     producer
leader.replication.throttled.replicas
message.downconversion.enable     true
min.insync.replicas      1
segment.jitter.ms      0
cleanup.policy      delete
flush.ms      9223372036854775807
follower.replication.throttled.replicas
segment.bytes      1073741824
retention.ms   604800000
flush.messages  9223372036854775807
message.format.version   2.5-IV0
file.delete.delay.ms   60000
max.compaction.lag.ms    9223372036854775807
max.message.bytes    1048588
min.compaction.lag.ms    0
message.timestamp.type
CreateTime
preallocate   false
min.cleanable.dirty.ratio   0.5
index.interval.bytes    4096
unclean.leader.election.enable    false
retention.bytes   -1
delete.retention.ms   86400000
segment.ms    604800000
message.timestamp.difference.max.ms     9223372036854775807
segment.index.bytes    10485760

Однако, когда я пытаюсь запустить задачу HttpSink-connect, задача терпит неудачу со следующим сообщением об ошибке, обнаруженным в выходных данных сообщения о состоянии, полученного в ответе на запрос Rest: curl -X GET localhost:8083/connectors/HttpSink/tasks/0/status

{"id": 0, "state": "FAILED", "worker_id": "127.0.0.1:8083","trace":"org.apache.kafka.connect.errors.ConnectException: Невозможно управлять темами: \ n \ tat io.confluent.connect.reporter.ReporterAdminClient.handleExecutionException (ReporterAdminClient. java: 109) \ n \ tat io.confluent.connect.reporter.ReporterAdminClient.createTopi * 1024min * Reporter. java: 57) \ n \ tat io.confluent.connect.reporter.Reporter.createDestinationTopicsIfNeeded (Reporter. java: 433) \ n \ tat io.confluent.connect.reporter.Reporter.configure (Reporter. java: 80) \ n \ tat io.confluent.connect.http.H ttpSinkTask.start (HttpSinkTask. java: 49) \ n \ tat org. apache .kafka.connect.runtime.WorkerSinkTask.initializeAndStart (WorkerSinkTask. java: 305) \ n \ tat org. * 1031. kafka.connect.runtime.WorkerSinkTask.execute (WorkerSinkTask. java: 193) \ n \ tat org. apache .kafka.connect.runtime.WorkerTask.doRun (WorkerTask. java: 184) \ n \ tat org. apache .kafka.connect.runtime.WorkerTask.run (WorkerTask. java: 234) \ n \ tat java .util.concurrent.Executors $ RunnableAdapter.call (Исполнители. java: 511) \ n \ tat java .util.concurrent.FutureTask.run (FutureTask. java: 266) \ n \ tat java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) \ n \ tat java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) \ n \ tat java .lang.Thread.run (Тема. java: 748) \ nПричинено: java .util.concurrent.ExecutionException: org. apache .kafka.common.errors.InvalidReplicationFactorException: Коэффициент репликации: на 3 больше, чем у доступных посредников: 1. \ n \ tat org. apache .kafka.common.internals .KafkaFutureImpl.wra pAndThrow (KafkaFutureImpl. java: 45) \ n \ tat org. apache .kafka.common.internals.KafkaFutureImpl.access $ 000 (KafkaFutureImpl. java: 32) \ n \ tat org. apache .kafka .common.internals.KafkaFutureImpl $ SingleWaiter.await (KafkaFutureImpl. java: 89) \ n \ tat org. apache .kafka.common.internals.KafkaFutureImpl.get (KafkaFutureImpl. java: 260) \ n \ tat io.confluent.connect.reporter.ReporterAdminClient.createTopi c (ReporterAdminClient. java: 53) \ n \ t ... еще 12 \ nПричинено: org. apache .kafka.common.errors.InvalidReplicationFactorException : Коэффициент репликации: на 3 больше, чем у доступных посредников: 1. \ n "}

Кроме того, я получаю следующий ответ в ответ на запрос на отдых" curl -X GET localhost: 8083 / connectors / HttpSink / themes "

{"HttpSink":{"topics":[]}}

Пожалуйста, помогите мне в решении этой проблемы.

1 Ответ

1 голос
/ 28 апреля 2020

Чтобы преодолеть это исключение, в дополнение к reporter.result.topi c .replication.factor и confluent.topi c .replication.factor вы должны установить reporter.error.topi c. replication.factor в 1, а также в свойствах конфигурации kafka-connect-http - https://docs.confluent.io/current/connect/kafka-connect-http/connector_config.html

"confluent.topic.replication.factor": 1,
"reporter.result.topic.replication.factor": 1,
"reporter.error.topic.replication.factor": 1
...