Apache Flink - 配置依赖,连接器,库
2024-09-08 00:47:55
- 每个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中,必须在范围编译中指定这些应用程序依赖项(与核心依赖项不同,核心依赖项必须在提供的作用域中指定)
最新文章
- 查看sbt版本
- C# 快速反射 IL
- 12SpringMvc_在业务控制方法中写入普通变量收集参数
- C#导入EXCEL数据
- Linux删除包含特殊符号文件名的文件
- VC提交网页表单(一共八篇)
- SPI模式下MCU对SD卡的控制及操作命令
- bigdata_批量机器执行通用脚本
- session get和load方法对比
- html onclick时间传字符串参数
- 巧妙地使用typora编辑有道云笔记
- JButton 按钮,JRadioJButton单选按钮,JChectBox复选框
- 老男孩Python全栈学习 S9 日常作业 001
- chrony配置的和相关命令
- Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由
- 新SQL temp
- Alpha冲刺 - (7/10)
- Python 可命名元祖
- 6月5 Smarty变量调节器
- golang type
热门文章
- 12.java中参数传递机制---形参和实参
- springboot启动流程(七)ioc容器refresh过程(上篇)
- ElementUi使用表单验证出现验证问题
- IPC——管道
- nmap中文帮助文档
- pythoth 中常用的魔法方法
- Python(phone)模块获取手机号归属地、区号、运营商等
- OpenGL学习脚印: uniform blocks在着色器中的使用 转自https://blog.csdn.net/wangdingqiaoit/article/details/52717963
- Til the Cows Come Home(Dijkstra)
- [WebMethod]参数介绍