2017-09-06 79 views
1

問題卡夫卡連接器 - Packacking罐子

我不是行家親和我被困試圖打包卡夫卡連接器。有兩個選項用於包裝它:

  • 要麼你產生一個文件夾包含連接器+所有的依賴罐子罐子 - 所有特定卡夫卡瓶
  • 或建立一個胖罐子所有的依賴關係(並且我也假設沒有kafka特定的jar包,但它在文檔中並不明確)。

我正在關注confluent webpage上的文檔,我試圖打包的連接器是this one on github

我試過了,用git克隆回購後,下面是mvn clean package。但是這似乎只創建了原始項目的一個罐子,並且依賴於mvn緩存(~/.m2/repository/)。

谷歌也有鏈接如何創建一個脂肪jar,但我需要某種方式來指定我想從胖罐中排除哪些罐子。

感謝

UPDATE

現在我正在運行:

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

/etc/kafka/connect-standalone.properties包含以下行:

plugin.path=/shared_win_files 

而且ls -al /shared_win_files,包含3個NS如下:

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

而且jar tvf kafka-connect-cdc-mssql-0.0.1-SNAPSHOT.jar包含以下內容:

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

其中MsSqlSourceConnector.class基本上this class這裏它實現了Connector

但是當我嘗試運行與該命令的接口上方,我得到一個錯誤

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

它給了所有可用的插件一個巨大的名單,但我並不在那裏。

SOLUTION

所以我也跟着Konstantine的答案如何包裝罐。剩下的問題是,當在KafkaConnect配置中指定plugin.path=/abc時,您必須小心。

您可以把一個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

    在描述符中,除其他事項外,你可以選擇你的檔案,文件和目錄的包裝形式就包括或排除,以及特定的設置你的項目依賴關係。

  2. 在項目中包含的pom.xml

    示例插件:https://github.com/confluentinc/kafka-connect-elasticsearch/blob/master/pom.xml

    這主要需要你定義的maven-assembly-plugin部分的配置和執行部分。此外,您可以將特定程序集插件描述符的調用與您可能定義的某些Maven配置文件相關聯。

最後,敬請期待,因爲打包Kafka Connect插件(連接器,轉換器,轉換器)可能會很快被大大簡化。

+0

我更新了問題。遇到另一個錯誤,試圖使用打包的罐子:/ – eddyP23

+0

非常感謝。我會繼續關注,希望能夠簡化。 – eddyP23