【时间】2022.06.08 周三
【题目】【Flink入门(6)】Flink的状态管理(基础)
本专栏是尚硅谷Flink课程的笔记与思维导图。
目录
引言
本节主要介绍flink中的状态管理(基础),包括:
- 算子状态 Operator State和 键控状态 Keyed State的概述与使用
- 设置状态后端 State Backends
一、状态(state)概述
二、算子状态 Operator State
2.1 概述
2.2 数据结构
2.3 代码例子
代码:
package apitest.state;
import apitest.beans.SensorReading;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.streaming.api.checkpoint.ListCheckpointed;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import java.util.Collections;
import java.util.List;
public class StateTest1_OperatorState {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
// socket文本流
DataStream<String> inputStream = env.socketTextStream("localhost", 7777);
// 转换成SensorReading类型
DataStream<SensorReading> dataStream = inputStream.map(line -> {
String[] fields = line.split(",");
return new SensorReading(fields[0], new Long(fields[1]), new Double(fields[2]));
});
// 定义一个有状态的map操作,统计当前分区数据个数
SingleOutputStreamOperator<Integer> resultStream &