2017-09-06 1 views
1

질문카프카 커넥터 - Packacking 항아리

은 내가 받는다는 프로 아니에요 그리고 나는 카프카 커넥터를 포장하려고 붙어있어. 모든 카프카 고유의 항아리는

  • 또는 모두와 함께 지방 항아리를 구축 -

    • 어느 쪽이든 당신은 커넥터 + 모든 종속 항아리가 들어있는 항아리 폴더를 생성 : 거기 포장을위한 두 가지 옵션이 있습니다 의존성 (그리고 나는 kafka 특정 항아리가 없다고 다시 가정하지만 그것은 문서에서는 명시 적이지 않다).

    confluent webpage에 대한 문서를 읽고 있는데 패키지하려고하는 커넥터는 this one on github입니다.

    git으로 저장소를 복제 한 후 시도한 내용은 다음과 같습니다. mvn clean package. 그러나 이것은 mvn 캐시 (~/.m2/repository/)의 종속성을 가진 원래 프로젝트의 단일 항아리 만 생성하는 것으로 보입니다.

    Google은 또한 fat jar을 만드는 방법에 대한 링크를 가지고 있지만, 나는 fat jar에서 제외시킬 항아리를 지정해야합니다.

    plugin.path=/shared_win_files 
    

    그리고 ls -al /shared_win_files contai : /etc/kafka/connect-standalone.properties은 다음 줄을 포함

    connect-standalone /etc/kafka/connect-standalone.properties /etc/kafka/connect-cdc-mssql-source.properties 
    

    을 : 나는 실행하고 지금

    감사

    UPDATE NS 다음

    kafka-connect-cdc-mssql-0.0.1-SNAPSHOT.jar 
    

    그리고 jar tvf kafka-connect-cdc-mssql-0.0.1-SNAPSHOT.jar에는 다음이 포함 MsSqlSourceConnector.classConnector를 구현하는 여기에 기본적으로 this class입니다

    6996 Thu Sep 07 14:47:24 BST 2017 com/github/jcustenborder/kafka/connect/cdc/mssql/MsSqlSourceConnector.class 
    

    . 나는 위의 명령을 사용하여 커넥터를 실행하려고하면

    는하지만, 오류

    Failed to find any class that implements Connector and which name matches com.github.jcustenborder.kafka.connect.cdc.mssql.MsSqlSourceConnector 
    

    그것은 가능한 모든 플러그인과 함께 거대한 목록을 제공을 얻을 수 있지만, 내 거기에 있지 않습니다.

    솔루션은 그래서 단지를 포장하는 방법 Konstantine의 답변을 따랐다. 남은 문제는 을 KafkaConnect 구성으로 지정할 때주의해야합니다.

    이 같은 fat jar 넣을 수 있습니다 :

    /abc/fatjar.jar 
    

    을 또는 당신은 abc에서 다른 폴더를 생성하고이 같은 폴더에 모든 관련 단지를 추가해야한다 마찬가지로

    /abd/my-connector-a/connector.jar 
    /abd/my-connector-a/connector-dependency.jar 
    ... 
    

    제 경우에는 항아리를 별도의 플러그인으로 취급하고있었습니다.

  • 답변

    2

    현재 maven과 함께 커넥터를 패키지하는 쉬운 방법은 maven-assembly-plugin을 사용하는 것입니다.

    1. 하나 개 이상의 조립 기술자를 정의하고 src/assembly에서 저장할 : 이것은 기본적으로 두 가지 주요 단계를 수반한다.

      문서 : http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html

      예 : https://github.com/confluentinc/kafka-connect-elasticsearch/blob/master/src/assembly/package.xml 기술자에

      , 무엇보다도, 당신은에 대한 포함 또는 제외뿐만 아니라 특정 설정하기 위해 아카이브, 파일 및 디렉토리의 포장 형식을 선택할 수 있습니다 프로젝트 종속성. https://github.com/confluentinc/kafka-connect-elasticsearch/blob/master/pom.xml

      이 주로 maven-assembly-plugin 섹션의 구성 및 실행 섹션을 정의 할 필요

    2. 프로젝트의 pom.xml

      예에서 플러그인을 포함합니다. 또한 특정 어셈블리 플러그인 설명자에 대한 호출을 정의 할 수있는 특정 Maven 프로파일과 연결할 수 있습니다.

    마지막으로, Kafka Connect 플러그인 (커넥터, 변환, 변환기)의 패키징이 곧 간단해질 수 있으므로 조심하십시오.

    +0

    질문이 업데이트되었습니다. 패키지 된 항아리를 사용하여 다른 오류가 발생했습니다./ – eddyP23

    +0

    고마워요. 나는 계속 조정할 것이고, 그것이 단순 해지기를 바란다. – eddyP23