2016-11-13 3 views
1

Я очень новичок в подключении Kafka. Я хочу подтолкнуть свои сообщения из темы Кафки к elasticsearch. После того, как вы выполнили доступную документацию .. Я загрузил и скомпилировал эластичный раковину для поиска из отпуска tar.zip (https://github.com/confluentinc/kafka-connect-elasticsearch/releases)Kafka connect confluent elasticsearch раковина (не найдена погрешность класса)

Я добавил файл свойств упругих свойств и включил вышеуказанную банку в путь класса. При запуске Кафка подключения в автономном режиме, я получаю эту ошибку

./usr/bin/connect-standalone etc/schema-registry/connect-avro-standalone.properties etc/kafka-connect-elasticsearch/quickstart-elasticsearch.properties

[2016-11-13 00:05:38,768] ERROR Task elasticsearch-sink-0 threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:142) java.lang.NoClassDefFoundError:io/searchbox/client/JestClientFactory 
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:81) 
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:52) 
at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:207) 
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:139) 
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:140) 
at o 

NoClassDefFoundError:io/searchbox/client/JestClientFactory

Я checkedthe pom.xml и имеет клиентскую зависимость шутя определенную правильно. Я что-то пропустил?

Любые указатели были бы очень благодарны.

Спасибо, Раджеш

+0

Кажется, что что-то не скомпилировано правильно или вы не добавили все зависимости к пути к классам? Возможно, вы можете показать, что вы добавили в путь к классам, и убедиться, что все в целевом каталоге добавлено в classpath для рабочего. В большинстве случаев это не будет только одна банка, в которой вы нуждаетесь, но несколько. – dawsaw

+0

Я просто использую 'export CLASSPATH =/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar'. Есть ли что-то еще, что мне нужно добавить в classpath? – Rajesh

+0

Добавьте все в этот целевой каталог и попробуйте. Другие банки в целевом каталоге содержат зависимости для соединителя, так как в настоящее время нет упаковки uber jar. – dawsaw

ответ

1

Это действительно кажется, что одной из зависимостей отсутствует в пути к классам. Пакеты на странице Github Releases не содержат зависимостей.

Я предлагаю использовать Confluent Open Source distribution и следовать за quickstart.

-2

Вы также можете построить жировую банку. Добавить descriptorRefs

<build> 
 
    <plugins> 
 
    .... 
 
    <plugin> 
 
     <groupId>org.apache.maven.plugins</groupId> 
 
     <artifactId>maven-assembly-plugin</artifactId> 
 
     <configuration> 
 
     .... 
 
     <descriptorRefs> 
 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
 
     </descriptorRefs> 
 
     </configuration> 
 
     .... 
 
    </plugin> 
 
    </plugins> 
 
    .... 
 
</build>

в POM, создавать и копировать банку с зависимостями в ЛИЭС каталог Кафки.

+1

Это не его проект, он не может изменить maven pom из jar, который он загрузил ... –

+0

Вы правы, это не его проект. Но он загружает zip-архив с помощью java-кода, а не jar. И он сказал, что компилирует и строит банку. Поэтому перед компиляцией он может модифицировать pom таким образом. –

Смежные вопросы