连接器依赖项应在默认范围内
这就是flink quickstart scala的建议:
<!-- Add connector dependencies here. They must be in the default scope (compile). -->
<!-- Example:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
-->
它还与flink项目配置保持一致:
我们建议将应用程序代码及其所有必需的依赖项打包到一个jar中,其中包含我们称之为applicationjar的依赖项。应用程序jar可以提交到已经运行的flink集群,或者添加到flink应用程序容器映像中。
重要提示:为了让maven(和其他构建工具)正确地将依赖项打包到应用程序jar中,这些应用程序依赖项必须在scope compile中指定(与核心依赖项不同,核心依赖项必须在scope provided中指定)。
配置单元连接器依赖项应在提供的范围内
然而,flink hive集成文档却给出了相反的建议:
如果您正在构建自己的程序,那么mvn文件中需要以下依赖项。建议不要在结果jar文件中包含这些依赖项。您应该在运行时添加上述依赖项。
1条答案
按热度按时间0yg35tkg1#
造成这种差异的原因是,对于配置单元,建议使用各自的配置单元依赖项启动集群。文档指出最好将依赖项放入
lib
启动群集之前,请先访问目录。这样,集群就可以运行使用配置单元的作业。同时,您不必将此依赖项捆绑到用户jar中,这样可以减小其大小。但是,如果您愿意,不应该有任何东西阻止您将配置单元依赖项与用户代码绑定在一起。