zoukankan      html  css  js  c++  java
  • Apache Flink 配置依赖,连接器,库

    • 每个Flink程序都依赖于一组Flink库。

    1.Flink核心和应用程序依赖项

    • Flink本身由一组类和运行需要的依赖组成。所有类和依赖的组合形成了Flink运行时的核心,并且当一个Flink程序运行时必须存在。
    • 这些核心类和依赖被打包成flink-dist.jar。
    • 为了在默认情况下避免过多的依赖关系和类在classpath中,Flink核心依赖不包含任何连接器或库(CEP, SQL, ML, etc.)。我们应该尽可能保持核心依赖"苗条"去保持默认classpath较小,避免依赖冲突。
    • 用户应用程序依赖关系都是连接器,格式,或一个特定的用户应用程序的需要的库。
    • 用户应用程序通常是打包成一个jar包,它包含应用程序代码和所需的连接器和库依赖。
    • 用户应用程序依赖关系明确不包括FlinkDataSet/ DataStream APIs和运行时依赖,因为这些已经是Flink核心依赖关系的一部分。

    2.设置一个项目:基本依赖项

    • 每个Flink应用程序都需要最低限度的API依赖关系来进行开发。所有这些依赖项都将其范围设置为提供这意味着需要对它们进行编译,但不应将它们打包到项目生成的应用程序jar文件中 ,这些依赖项是Flink核心依赖项,它们已在任何设置中被提供。如果它们未设置为提供,则最好的情况是生成的jar包变得过大,因为它还包含所有Flink核心依赖项。最糟糕的情况是添加到应用程序的jar包的Flink核心依赖项与您自己的一些依赖版本冲突(通常通过反向类加载来避免)。
    • 要使应用程序在IntelliJ IDEA中运行,需要声明Flink依赖项在编译范围中而不是提供为了避免必须将依赖范围声明为编译,可以给它们添加了一个配置文件,该应用程序在IntelliJ中运行时有选择地激活在不影响JAR文件打包的情况下,将依赖关系提升到范围编译

    3.添加连接器和库依赖项

    • 大多数应用程序需要运行特定的连接器或库,例如连接到Kafka,Cassandra等的连接器。这些连接器不是Flink的核心依赖项的一部分,因此必须作为依赖项添加到应用程序中。
    • 建议将应用程序代码及其所有必需的依赖项打包到一个jar-with-dependencies中,我们将其称为应用程序jar应用程序jar可以提交给已经运行的Flink集群,也可以添加到Flink应用程序容器映像中。
    • 对于Maven(和其他构建工具)将依赖项正确打包到应用程序jar中,必须在范围编译指定这些应用程序依赖项(与核心依赖项不同,核心依赖项必须在提供作用域中指定
  • 相关阅读:
    JavaScript对象 原型
    JavaScript数据类型 数据转换
    JavaScript字符串去除空格
    JavaScript实现StringBuffer
    JavaScript获取url参数
    JavaScript获取当前根目录
    React 和 Redux理解
    Umbraco 中获取一个media item的文件路径 file path
    Umbraco中获取UmbracoContext
    Umbraco中如何找到home node
  • 原文地址:https://www.cnblogs.com/ooffff/p/9420282.html
Copyright © 2011-2022 走看看