следуя этому документу kafka-connect-elasticsearch
https://github.com/confluentinc/demo-scene/tree/master/kafka-to-elasticsearch README.md файл
возникла следующая ошибка при создании коннектора приемника в ksql
с использованием docker.elastic.co/elasticsearch/elasticsearch:7.12.0
столкнулся с аналогичной проблемой и при использовании версии 7.11.0
ksql> describe connector SINK_ELASTIC_TEST_01;
Name : SINK_ELASTIC_TEST_01
Class : io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
Type : sink
State : RUNNING
WorkerId : kafkaconnect:8083
Task ID | State | Error Trace
---------------------------------------------------------------------------------------------------------------------------
0 | FAILED | java.lang.NoClassDefFoundError: org/elasticsearch/action/DocWriteRequest
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:56)
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:48)
at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:308)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:196)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:238)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.action.DocWriteRequest
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 11 more
кто-нибудь может подсказать, что здесь не так
Я тестировал версию kafka-connect-elasticsearch-11.0.3, я поместил эту банку в путь / usr / share / java / Kafka в контейнере подключения Kafka.
Когда я делаю запрос на получение в kafkaconnect для подключаемых модулей коннектора, он отображает класс ElasticsearchSinkConnector, что означает, что jar размещен правильно.
Вам нужно больше, чем одна банка. Опять же, я не думаю, что вы следуете руководству в точности так, как написано ... Почему бы не использовать установку с конфлюент-хабом (как это делает гид)?
Ошибка находится в пути к классам соединителя, а не в контейнере Elasticsearch, так какую версию вы используете?