环境对象
StreamExecutionEnvironment
(开发时)
- 作用域:
Main
函数中 开发时的概念,作业开发的入口,数据源接口,生成和转换
DataStream
的接口,数据SInk
的接口,作业配置接口,作业启动执行的入口Environment
(构建时)作用域: 起到衔接 “上下” 的作用
作业的名称,并行度,作业编号
job ID
,监控的Mertic,容错的配置信息 和IO
等 ,是从StreamExecutionEnvironment
中抽象出来的 作为运行时刻的上下文信息RuntimeContext
(运行时)作用域:
UDF
中RuntimeContext
是运行时Task实例级别的感念 (对于每一个Task
而言,其本身有更细节的配置信息)
执行环境
StreamExecutionEnvironment
StreamPlanEnvironment ※
StreamGraph
(专门用来生成执行计划的)
LocalStreamEnvironment
- 在单个 JVM 中使用多线程模拟Flink 集群
- 执行作业的
Main
函数生成Streamgraph
,转换成JobGraph
- 设置任务运行时配置信息
- 根据配置信息启动对应的
LocalFlinkMiniCluster
- 根据配置信息和
miniCluster
生成对应的MiniClusterClient
- 通过
MiniClusterClient
提交JobGraph
到MiniCluster
- 执行作业的
RemoteStreamEnvironment
- 在大规模数据中心部署的 Flink 生成集群的执行环境
- 执行作业的Main 函数生成
Streamgraph
,转换成JobGraph
- 设置任务运行时配置信息
- 提交
JobGraph
到远程的Flink
集群
- 执行作业的Main 函数生成
ScalaShellStreamEnvironment
- 在Scala Shell 执行环境 可以在命令行中交互式 Flink 作业
- 执行作业的
Main
函数生成Streamgraph
,转换成JobGraph
- 设置任务运行时配置信息
- 提交
JobGraph
到远程的Flink
集群
- 执行作业的
StreamContextEnvironment
- 在
Cli
命令行或者单元测试时会被用上
ExecutionEnvironment
运行时环境
Environment
RuntimeEnvironment
Task
进行初始化时,把Task
运行相关的信息都封装到该对象中其中不光包含了: 配置信息、运行时的各种服务也会被包装到其中
SavepointEnvironment
是
Environment
的最小实现,在状态处理器的API中使用
运行时上下文
RuntimeContext
RuntimeContext
是Function
运行时的上下文- 封装了
Function
运行时可能需要的所有信息,让Function
在运行时能够获取作业级别的信息 比如(并行度相关信息,
Task
名称,执行配置信息(ExecutionConfig
)、State
等)1.StreamingRuntimeContext
-
2.DistributedRuntimeUDFContext
由运行时
UDF
所在的批处理算子创建,在DataSet中创建使用3. RuntimeUDFContext
-
4. SavepointRuntimeContext
这个框架支持为检查点和保存点进行操作,包括: 读取、变更、写入等
5. CepRuntimeContext
CEP
复杂事件处理中使用的上下文
- RichAsyncFunctionIterationRuntimeContext
- RichAsyncFunctionRuntimeContext
- IterationRuntimeContext