序列化
- flink可以将任何可序列化的对象转化为流,自带的序列化器有:
- 基本类型:String、Long、Integer、Boolean、Array
- 复合类型:Tuples、POJOs、scala case class
- POJO 满足以下所有条件,将识别为POJO
- 类:public且独立(无 非静态内部类)
- 类:有public的无参构造函数
- 类及父类:除了static、transient的属性,下面两个条件任意满足一个:
- 属性有public getter setter方法
- 属性是public 且非final
- transient:添加本属性的参数 不会被序列化
```java
//示例:
public class Person {
public String name;
public Integer age;
public Person() {} public Person(String name, Integer age) {
} }. . .
Person person = new Person(“Fred Flintstone”, 35); ```
Flink三大组件
- jobManager:申请资源、对task进行分发-调度-容错、检查点操作
- JobMaster(每个job独有一个):负责每个job的dataflow、检查点
- ResourceManager(job共用):负责taskManager中slot的调度、向资源平台yarn申请 释放资源
- Dispatcher(job共用):分发作业、为每个job启动JobMaster、启动一个webUI
- taskManager:slot的数量表示并发处理task的数量。
- slot目前仅仅隔离内存 而不会隔离CPU
- Flink Client: 将批处理或流处理编译成dataflow,提交到jobManager
- 命令行界面
- REST 端点
- SQL 客户端
- Python REPL

