Flink - DataStream API - 执行环境

suaxi
2026-11-07 / 0 评论 / 2 阅读 / 正在检测是否收录...

四、DataStream API

4.1DataStream API.png


1. 执行环境(Execution Environment)

Flink 程序可以在各种上下文环境中运行,在提交作业执行计算时,须先获取当前 Flink 的运行环境,从而建立起与 Flink 框架的联系,构建不同环境对应的运行过程


1.1 创建执行环境

(1)getExecutionEnvironment

// 如:程序独立运行,则返回本地执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();


(2)createLocalEnvironment

// 该方式可以显示传入并行度参数,默认值为当前host的cpu核心对应的线程数
StreamExecutionEnvironment localEnv = StreamExecutionEnvironment.createLocalEnvironment();


(3)createRemoteEnvironment

StreamExecutionEnvironment remoteEnv = StreamExecutionEnvironment
          .createRemoteEnvironment(
            "host",                   // JobManager主机名
            8088,                     // JobManager进程端口号
               "xxx/xxx/jarFile.jar"     // 提交给 JobManager 的 jar 包
        );


1.2 执行模式(Execution Mode)

Flink 官方从 1.12 版本开始,推荐使用 DataStream API,在提交任务时将执行模式设置为 BATCH 进行批处理

DataStream API 执行模式:

  • 流执行模式(Streaming)
  • 批执行模式(Batch)
  • 自动模式(AutoMatic):该模式根据数据数据源是否有界自动选择执行模式


设置方式:

  • 命令行

    bin/flink run -Dexecution.runtime-mode=BATCH ...
  • 代码

    // 实际业务场景中不推荐在代码里设置
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.setRuntimeMode(RuntimeExecutionMode.BATCH);


1.3 触发执行程序

Flink 是由事件驱动的,只有当数据真正输入时,才会触发计算,即延迟执行或懒执行

在算子后须显示调用 execute() 方法,该方法会一直同步等待作业完成,返回 JobExecutionResult 执行结果

env.execute();
0

评论 (0)

取消