Flink笔记整理(三)
五、DataStream API
DataStream API是Flink的核心层API,一个Flink程序,其实本质就是对DataStream的各种转换。
5.1Environment
创建执行环境
// 最简单,最常用
StreamExecutionEnvironment env = StreamExecutionEnvironment
.getExecutionEnvironment();
// 本地执行环境(很少用)
StreamExecutionEnvironment localEnv = StreamExecutionEnvironment
.createLocalEnvironment();
// 远程集群执行环境
StreamExecutionEnvironment remoteEnv = StreamExecutionEnvironment
.createRemoteEnvironment(
"host", // JobManager主机名
1234, // JobManager进程端口号
"path/to/jarFile.jar" // 提交给JobManager的JAR包
);
设置执行模式
// 默认流模式执行,可改为批执行模式
// 命令行(更常用)
bin/flink run -Dexecution.runtime-mode=BATCH ...
// 代码写死(用得比较少,测试的时候可以用用)
StreamExecutionEnvironment env = StreamExecutionEnvironment
.getExecutionEnvironment();
env.setRuntimeMode(RuntimeExecutionMode.BATCH);
触发执行
Flink是由事件驱动的,只有等到数据到来,才会触发真正的计算,这也被称为“延迟执行”或“懒执行”。
env.execute();
5.2 Source
Flink可以从各种来源获取数据,然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源(data source),而读取数据的算子就是源算子(source operator)。所以,source就是整个处理程序的输入端。
// 12版本以后的统一写法
DataStreamSource<String> stream = env.fromSource(…)
5.3 Transformation
转换算子,将一个或多个DataStream转换为新的DataStream。
Flink支持的Transformation以及代码