2016-11-13 5 views
1

나는 카프카 연결에 매우 익숙하다. 카프카 주제에서 탄성 검색까지 내 메시지를 보내고 싶습니다. 사용 가능한 문서를 따른 후 .. 릴리스 tar.zip (https://github.com/confluentinc/kafka-connect-elasticsearch/releases)에서 탄성 검색 싱크를 다운로드하고 컴파일했습니다.카프카 연결 합치적인 탄성 검색 싱크 (클래스를 찾을 수 없음 오류)

탄성 검색 속성 파일을 추가하고 classpath에 위의 jar를 포함 시켰습니다. 내가 독립 모드로 연결 카프카 실행하면 나는

[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

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

내가 pom.xml 파일을 checkedthe이 오류를 얻을 수 있으며 올바르게 정의 농담 클라이언트 의존성을 가지고있다. 내가 놓친 게 있니?

모든 포인터는 정말 감사하겠습니다.

덕분에, 인 Rajesh

+0

뭔가가 올바르게 컴파일되지 않았거나 모든 종속성을 클래스 경로에 추가하지 않은 것 같습니다. 어쩌면 클래스 경로에 추가 한 것을 보여줄 수 있으며 대상 디렉토리의 모든 항목이 작업자의 클래스 경로에 추가되었는지 확인할 수 있습니다. 대부분의 경우, 그것은 단지 하나의 항아리만으로는되지 않을 것입니다. – dawsaw

+0

'export CLASSPATH =/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar'을 사용하고 있습니다. 클래스 패스에 추가해야 할 것이 있습니까? – Rajesh

+0

해당 대상 디렉토리의 모든 것을 추가하고 시도하십시오. 대상 디렉토리의 다른 jar에는 현재 uber jar 패키징이 없으므로 커넥터에 대한 종속성이 있습니다. – dawsaw

답변

1

그것은 클래스 패스에서 누락 된 종속성 중 하나처럼 보인다. Github Releases 페이지의 패키지에는 종속성이 없습니다.

Confluent Open Source distribution을 사용하고 quickstart을 따르는 것이 좋습니다.

-2

지방산 단지도 만들 수 있습니다. , pom으로 카프카의 디렉토리를 LIBS에 종속성이있는 단지를 구축하고 복사 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>

를 추가합니다.

+1

이것은 그의 프로젝트가 아니므로 다운로드 한 항아리의 maven pom을 수정할 수 없습니다 ... –

+0

네 말이 맞아, 그의 프로젝트가 아니야. 그러나 그는 jar가 아닌 java 코드로 zip 아카이브를 다운로드합니다. 그리고 그는 병을 쌓고 쌓는다 고 말했습니다. 그래서 컴파일하기 전에 그는 pom을 이렇게 수정할 수 있습니다. –