为什么flink quickstart scala建议在默认范围中添加连接器依赖项,而flink hive integration docs建议相反

dldeef67  于 2021-07-15  发布在  Flink
关注(0)|答案(1)|浏览(401)

连接器依赖项应在默认范围内

这就是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文件中包含这些依赖项。您应该在运行时添加上述依赖项。

为什么?

0yg35tkg

0yg35tkg1#

造成这种差异的原因是,对于配置单元,建议使用各自的配置单元依赖项启动集群。文档指出最好将依赖项放入 lib 启动群集之前,请先访问目录。这样,集群就可以运行使用配置单元的作业。同时,您不必将此依赖项捆绑到用户jar中,这样可以减小其大小。但是,如果您愿意,不应该有任何东西阻止您将配置单元依赖项与用户代码绑定在一起。

相关问题