Flink本身包含系统运行所需的类和依赖项,如协调、网络、检查点、故障转移、操作、资源管理等。这些类和依赖项构成执行引擎的核心,并且在启动Flink应用程序时必须存在
二、用户应用程序依赖org.apache.flink flink-core 1.11.0
用户应用程序依赖主要是指用户的应用程序所需的连接器和库等依赖项。用户的应用程序通常被打包成JAR包,其中包含应用程序带那么及其所需的连接器和库
二、流处理应用程序和批处理应用程序所需的依赖每个Flink应用程序都需要最小的Flink API依赖。在手动设置项目时,需要为Java API添加以下依赖项
org.apache.flink flink-streaming-java_2.11 1.11.0 provided
所有这些依赖项的作用域(scope)都被设置为“provided”,这意味着需要对其进行编译,单不应该将他们打包到项目的生产环境的JAR包中。这些依赖项是Flink核心依赖项,在任何设置中都是可用的。
建议将这些依赖项保持在“provided”的范围内。如果未将“scope”的值设置为“provided”,则会使生成的JAR包变得过大(因为它包含了所有Flink核心依赖项),从而引起依赖项版本冲突
三、Table API和SQL的依赖 一、相关依赖与DataStream API和DataSet API开发Flink应用程序所需要的依赖不同,通过Table API、SQL开发应用程序,需要加入如下所示的依赖:
org.apache.flink flink-table-api-java-bridge_2.11 1.11.0 provided
除此之外,如果想在IDE本地运行程序,则需要添加响应的模块,具体取决于使用的计划期
如果使用OldPlanner,则添加如下所示的依赖:
org.apache.flink flink-table-planner_2.11 1.11.0 provided
如果使用BlinkPlanner,则添加如下所示的依赖
org.apache.flink flink-table-planner-blink_2.11 1.11.0 provided
由于部分Table相关的代码是用Scala实现的,因此如下所示的依赖也需要添加到程序中,不管是流处理应用程序还是批处理应用程序
二、扩展依赖org.apache.flink flink-stream-scala_2.11 1.11.0 provided
如果想用自定义格式来解析Kafka数据,或者自定义函数,则添加如下所示的依赖。编译出来的JAR包可以直接给SQL Client使用
org.apache.flink flink-table-common 1.11.0 provided
flink-table-common模块包含的可以扩展的接口有SerializationSchemaFactory、DeserializationSchemaFactory、ScalarFunction、TableFunction和AggregateFunction
三、在开发工具中执行的依赖如果在开发工具中测试Flink应用程序,则需要添加如下所示的依赖,否则会报错
四、Connector和Library的依赖org.apache.flink flink-clients_2.11 1.11.0
大多数应用程序都需要使用特定的连接器或库才能运行,如连接到Kafka、Hive等,这些连接器不是Flink核心依赖项的一部分,因此,它们必须作为依赖项被添加到应用程序中
五、Hadoop的依赖org.apache.flink flink-connector-kafka_2.11 1.11.0
如果没有将现有的Hadoop输入/输出格式与Flink的Hadoop一起使用,则不比将Hadoop依赖项直接添加到应用程序中如果要将Flink与Hadoop一起使用,则需要具有一个包含Hadoop依赖项的Flink设置,而不是将Hadoop添加为用户的应用程序依赖项如果在IDE内进行测试或开发(如用于HDFS访问),则需要添加Hadoop依赖项,并制定依赖项的范围(Scope)



