- 从数据流向角度分析:数据源Source、转换操作Transformation、下沉Sink
- 从窗口操作角度分析:countWindowAll、countWindow、timeWindowAll、timeWindow滑动窗口
- 从实际项目角度分析:与kafka、mysql、redis、http、elasticsearch
- 从容错分析析:StateBackend、checkpoint
socket通信、本地创建数据、从磁盘文件、从Kafka消息中间件中读取
- map: 取一个元素并生产一个元素,一个映射函数
- flatMap: 取一个元素并产生零个、一个或多个元素
- filter: 为每个元素评估一个布尔函数,并保留该函数返回true的布尔函数
- keyBy: 从逻辑上将流划分为不相交的分区,具有相同键的所有记录都分配给同一分区。在内部,keyBy() 是通过哈希分区实现的
- reduce: 对key-value数据进行“滚动”压缩。将当前元素与最后一个减少的值合并,并发出新值
- fold: 带有初始值的key-value数据流上的“滚动”折叠。将当前元素与上一个折叠值组合在一起并发出新值
- Aggregations: 在key-value 数据流上滚动聚合。min和minBy之间的区别是min返回最小值,而minBy返回在此字段中具有最小值的元素(与max和maxBy相同)
1. sum 求和
2. min 求最小值 3. max 求最大值 4. minBy
5. maxBy - window: 窗口操作
- union: 两个或多个数据流的并集,创建一个包含所有流中所有元素的新流。注意:如果将数据流与其自身合并,则在结果流中每个元素将获得两次
- connect: “连接”两个保留其类型的数据流。连接允许两个流之间共享状态
- split: 根据某种标准将流分成两个或多个流
- select: 从拆分流中选择一个或多个流
- addSink
- writeAsText
- writeAsCsv
- countWindowAll
- countWindow
- timeWindowAll
- timeWindow滑动窗口
- 与kafka对接
- mysql对接
- redis对接
- http对接
- elasticsearch对接
- StateBackend
MemoryStateBackend 默认保存到内存中,即检查点保存在JobManager内存中,状态保存在TaskManager内存中 FsStateBackend 可以是磁盘文件"file:\\dir_checkp"; 生产环境是: "hdfs://node-01:8020/user/dev/sqoop/flink_state_backend"
RocksDBStateBackend 将正在运行中的状态数据保存在RocksDB数据库中
- Checkpoint
Checkpoint 使Flink 的状态具有良好的容错性,通过checkpoint 机制,Flink 可以对作业和计算位置进行恢复。
1. Flink —— 什么是Flink?
2. 超全干货--Flink思维导图,花了3周左右编写、校对
3. 大解密:Flink恰巧语义一次消费,怎么保证
4. Flink 容错机制 —— CheckPoint【含示例源码】
5. Flink实战 —— 读取Kafka数据并与MySQL数据关联【附源码】
6. Flink —— StateBackend 状态后端
1. JAVA相关的深度技术博客链接
2. Flink 相关技术博客链接
3. Spark 核心技术链接
4. 设计模式 —— 深度技术博客链接
5. 机器学习 —— 深度技术博客链接
6. Hadoop相关技术博客链接
7. 超全干货--Flink思维导图,花了3周左右编写、校对
8. 深入JAVA 的JVM核心原理解决线上各种故障【附案例】
9. 请谈谈你对volatile的理解?--最近小李子与面试官的一场“硬核较量”
10. 聊聊RPC通信,经常被问到的一道面试题。源码+笔记,包懂
11. 深入聊聊Java 垃圾回收机制【附原理图及调优方法】
欢迎扫描下方的二维码或 搜索 公众号“大数据高级架构师”,我们会有更多、且及时的资料推送给您,欢迎多多交流!