【问题标题】:Kafka: How can I create a fat Jar of the HDFS Kafka connector?Kafka:如何创建 HDFS Kafka 连接器的胖 Jar?
【发布时间】:2018-09-19 09:12:38
【问题描述】:
我已经从 gitHub 分叉出 Confluent 的 Hdfs 连接器,并添加了包含自定义库的自定义代码。我在 hdfs 连接器 pom 文件中添加了这个库的依赖项,但是当我在远程服务器上运行连接器时,我得到自定义库的类未找到异常。
【问题讨论】:
标签:
java
maven
apache-kafka
apache-kafka-connect
confluent-platform
【解决方案1】:
虽然您可以创建一个 uber jar,但我建议将所有额外的 jar 复制到 hdfs 连接目录中,如 installing plugins 所述
如果你坚持做一个 uber jar,你必须使用 Maven Shade Plugin,它不是现有 POM 的一部分。
然后,使用 <scope>provided</scope> 为 Connect 类路径中已包含的任何 HDFS Connect 依赖项制作自定义代码,然后在构建阴影 JAR 后,您的选项是以下之一
- 将您的 JAR 添加到最新版本的
plugin.path 中
-
export CLASSPATH 包含带有自定义代码的 jar 路径。
- 只需在现有
share/java/kafka-connect-hdfs 库之上复制您的 JAR 文件及其外部依赖项