Запуск Kafka Connect с Avro Converter: исключение ConfigException: «Отсутствует URL реестра схемы»

#apache-kafka #confluent-platform #apache-kafka-connect

#apache-kafka #confluent-платформа #apache-kafka-connect

Вопрос:

Привет, я запускаю Kafka Connect docker images

 docker run -d 
  --name=kafka-connect 
  --net=host 
  -e CONNECT_BOOTSTRAP_SERVERS=localhost:39092 
  -e CONNECT_REST_PORT=28082 
  -e CONNECT_GROUP_ID="quickstart" 
  -e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-config" 
  -e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-offsets" 
  -e CONNECT_STATUS_STORAGE_TOPIC="quickstart-status" 
  -e CONNECT_KEY_CONVERTER="io.confluent.connect.avro.AvroConverter" 
  -e CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL="http://localhost:8081" 
  -e CONNECT_VALUE_CONVERTER="io.confluent.connect.avro.AvroConverter" 
  -e CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL="http://localhost:8081" 
  -e CONNECT_INTERNAL_KEY_CONVERTER="io.confluent.connect.avro.AvroConverter" 
  -e CONNECT_INTERNAL_VALUE_CONVERTER="io.confluent.connect.avro.AvroConverter" 
  -e CONNECT_REST_ADVERTISED_HOST_NAME="localhost" 
  -e CONNECT_ZOOKEEPER_CONNECT="localhost:2181" 
  tim/kafka-connect
  

и получение

 Exception in thread "main" org.apache.kafka.common.config.ConfigException: Missing Schema registry url!
    at io.confluent.connect.avro.AvroConverter.configure(AvroConverter.java:64)
    at org.apache.kafka.connect.runtime.Worker.<init>(Worker.java:93)
    at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:74)
  

не могу понять, куда добавить «schema.registry.url» conf !!

Ответ №1:

проблема заключалась в _INTERNAL_KEY_ и _INTERNAL_VALUE_
Я не добавлял SCHEMA_REGISTRY_URL для этих двух таким же образом, как для _KEY_CONVERTER и _KEY_VALUE любым другим способом, на который я переключился org.apache.kafka.connect.json.JsonConverter для внутреннего ключа и значения

Комментарии:

1. Это правильный ответ. Используемый здесь конвертер avro требует настройки URL-адреса реестра схемы для каждого экземпляра, в котором он используется. У JsonConverter нет такого требования, хотя у него есть свои собственные параметры конфигурации, если вы хотите их использовать (например, schemas.enable).

Ответ №2:

Если вы используете .properties файл, вам потребуется:

 :internal.key.converter.schema.registry.url http://urlgoes.here
:internal.value.converter.schema.registry.url http://urlgoes.here
  

Если вы передаете переменные среды командной строки, вам потребуется:

 INTERNAL_KEY_CONVERTER_SCHEMA_REGISTRY_URL=http://urlgoes.here
INTERNAL_VALUE_CONVERTER_SCHEMA_REGISTRY_URL=http://urlgoes.here