나는 한동안 kafka-connect 이미지 confluentinc / cp-kafka-connect 를 사용하고 있습니다. Confluent 문서에 따르면이 도커 이미지는 Elastic을 포함하여 사전 설치된 커넥터 플러그인과 함께 제공됩니다.
이전에 5.4.1-ccs
훌륭하게 작동 하는 버전 을 사용하고 있었으며 Elastic 싱크 커넥터 구성을 추가 할 수 있으며 잘 작동합니다. 그러나 confluentinc/cp-kafka-connect
최신 으로 업데이트하려고 시도했지만 v6.0.1
이제 오류가 발생합니다.
ConnectException: Failed to find any class that implements Connector and which name matches ElasticsearchSinkConnector
Confluent 웹 사이트에서 많은 문서를 읽었지만 약간 산발적입니다. 문제는 플러그인이 새 도커 이미지에서 제거되었거나 잘못된 경로 (어떤 경로인지 확실하지 않음)로 인해 마운트되지 않는다는 것을 이해합니다.
이 문제를 어떻게 해결할 수 있습니까? (참고 : 내 자바 플러그인도 작성 했으므로 둘 다 작동해야합니다)
docker-compose
현재 내 파일 은 다음과 같습니다 (다시 말하지만 버전에서 작동 함 5.4.1-ccs
).
kafka-connect-node-1:
image: confluentinc/cp-kafka-connect:5.4.1 #using old version because of breaking change
hostname: kafka-connect-node-1
ports:
- '8083:8083'
environment:
CONNECT_BOOTSTRAP_SERVERS: [MY_SERVER]
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: compose-connect-group
CONNECT_CONFIG_STORAGE_TOPIC: connect-configs
CONNECT_OFFSET_STORAGE_TOPIC: connect-offsets
CONNECT_STATUS_STORAGE_TOPIC: connect-status
CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: 'http://kafka-schema-registry:8084'
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://kafka-schema-registry:8084'
CONNECT_INTERNAL_KEY_CONVERTER: 'org.apache.kafka.connect.json.JsonConverter'
CONNECT_INTERNAL_VALUE_CONVERTER: 'org.apache.kafka.connect.json.JsonConverter'
CONNECT_REST_ADVERTISED_HOST_NAME: 'kafka-connect-node-1'
CONNECT_LOG4J_ROOT_LOGLEVEL: 'INFO'
CONNECT_LOG4J_LOGGERS: 'org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR'
CONNECT_PLUGIN_PATH: '/usr/share/java,/etc/kafka-connect/jars'
CONNECT_ZOOKEEPER_CONNECT: [MY_ZOOKEEPER]
volumes:
- /efs/connector:/etc/kafka-connect/jars/ # mounting my custom JAR
depends_on:
- kafka-schema-registry
- kafka-rest-proxy
Confluent Platform 6.0 커넥터는 더 이상 번들로 제공되지 않으므로 별도로 설치해야합니다.
을 기반으로 자체 이미지 를 빌드cp-kafka-connect-base
하거나 다음과 같이 image 명령 을 재정 의하여 런타임에 커넥터를 설치할 수 있습니다 .
kafka-connect:
image: confluentinc/cp-kafka-connect-base:6.0.0
container_name: kafka-connect
ports:
- "8083:8083"
environment:
CONNECT_BOOTSTRAP_SERVERS: "broker:29092"
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: compose-connect-group
CONNECT_CONFIG_STORAGE_TOPIC: _kafka-connect-group-01-configs
CONNECT_OFFSET_STORAGE_TOPIC: _kafka-connect-group-01-offsets
CONNECT_STATUS_STORAGE_TOPIC: _kafka-connect-group-01-status
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081'
CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect"
CONNECT_LOG4J_ROOT_LOGLEVEL: "INFO"
CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR"
CONNECT_LOG4J_APPENDER_STDOUT_LAYOUT_CONVERSIONPATTERN: "[%d] %p %X{connector.context}%m (%c:%L)%n"
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_PLUGIN_PATH: '/usr/share/java,/connectors,/usr/share/confluent-hub-components/'
depends_on:
- broker
- schema-registry
volumes:
- $PWD/data/connectors/:/connectors/
command:
- bash
- -c
- |
echo "Installing Connector"
confluent-hub install --no-prompt confluentinc/kafka-connect-elasticsearch:10.0.1
#
echo "Launching Kafka Connect worker"
/etc/confluent/docker/run &
#
sleep infinity
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다