Kafka:如何创建 HDFS Kafka 连接器的胖 Jar?
Kafka: How can I create a fat Jar of the HDFS Kafka connector?
我从 gitHub 中分离了 Confluent 的 Hdfs 连接器并添加了包含自定义库的自定义代码。我在 hdfs 连接器 pom 文件中添加了这个库的依赖项,但是当我 运行 远程服务器上的连接器时,我得到 class not found 自定义库异常。
我认为这可以通过创建 hdfs 连接器的 fat jar 来解决。
创建 fat jar 时我需要在 pom 文件中指定的 hdfs 连接器的入口点是什么。
虽然您可以创建一个 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 路径。
- 只需将 JAR 文件及其外部依赖项复制到现有
share/java/kafka-connect-hdfs
库
我从 gitHub 中分离了 Confluent 的 Hdfs 连接器并添加了包含自定义库的自定义代码。我在 hdfs 连接器 pom 文件中添加了这个库的依赖项,但是当我 运行 远程服务器上的连接器时,我得到 class not found 自定义库异常。
我认为这可以通过创建 hdfs 连接器的 fat jar 来解决。
创建 fat jar 时我需要在 pom 文件中指定的 hdfs 连接器的入口点是什么。
虽然您可以创建一个 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 路径。- 只需将 JAR 文件及其外部依赖项复制到现有
share/java/kafka-connect-hdfs
库