环境对象
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

