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中,必须在范围编译指定这些应用程序依赖项(与核心依赖项不同,核心依赖项必须在提供作用域中指定
  • 相关阅读:
    UVA 1025 A Spy in the Metro DP水题
    ZOJ 3814 Sawtooth Puzzle BFS
    ZOJ 3816 Generalized Palindromic Number
    UVA 10859 Placing Lampposts 树形DP
    UVA 11825 Hackers' Crackdown 状压DP
    POJ 2887 Big String 线段树 离线处理
    POJ 1635 Subway tree systems Hash法判断有根树是否同构
    BZOJ 3110 k大数查询 & 树套树
    sdoi 2009 & 状态压缩
    来自于2016.2.24的flag
  • 原文地址:https://www.cnblogs.com/ooffff/p/9420282.html
Copyright © 2011-2022 走看看