Flink基础-DataStream编程
流处理API衍变(对比Storm)
- Storm的API抽象层次更低点,相当于是
面向操作的,通过代码直接自己自定义构造DAG
1 | TopologyBuilder builder = new TopologyBuilder(); |
- Flink相当于是
面向数据的,通过API, 也就是一系列算子对数据进行一系列转换计算,由Flink底层自己构建生成DAG,所以相对来说抽象层次更高点
基本使用
1 | //1、设置运行环境 |
操作概览

DataStream基本转换

物理分组方法
只有进行分组后才能调用reduce/sum等算子进行统计计算
| 类型 | 描述 |
|---|---|
| keyBy() | 最常用的按key类型发送,key的类型数量往往远大于算子并发实例数 |
| global() | 全部发往第一个task |
| broadcast() | 广播,适用于数据量小的情况 |
| forward() | 上下游并发度一致时一对一发送 |
| shuffle() | 随机均匀分配 |
| rebalance() | Round-Robin(轮流分配) |
| rescale() | Local Round-Robin(本地轮流分配) |
| partitionCustomer() | 自定义单播() |