一.任务与操作链
对于分布式执行,Flink链操作子任务一起放入任务。每个任务由一个线程执行。将操作链接到任务是一个有用的优化:它减少了线程到线程的切换和缓冲的开销,并降低延迟的同时提高了总体吞吐量,链接可配置。
如下图:
二.JobManager、TaskManager、Client
- JobManager【也称master】负责协调分布式执行。安排任务,协调检查点,协调故障恢复等。
- TaskManager【也称worker】执行任务的数据流,以及缓冲器和交换数据流。
- Client不是运行和程序执行的一部分,而是被用来准备和发送数据流的JobManager。之后,客户端可以断开连接或保持连接状态以接收进度报告。客户端作为触发执行的Java/Scala程序的一部分运行,也可以在命令行进程中运行./bin/flink run …
如图: