抄的网图,下图就是典型的flink 分布式流处理模型
主要将数据分为三部分,输入,处理,输出三部分。
flink 就是一个批流一体的数据处理引擎和工具。
其中flink sql ,flink table api ,flink date stream 关系如图:
首先类似hadoop wordcount demo,flink 版也来的wordcount,告诉你整体怎么用这个datastreamAPI。
执行这个要包含main方法,和MR类似;实际上,数据处理也和离线差不多,定义数据输入,数据处理,定义数据输出。
1.对应离线MR,flink 的context 为StreamExecutionEnviroment,和hadoop的元数据类似。
2.flink的数据输入为dataStream,不同类型的数据定义不同的dataStream,然后使用addSource添加源。
3.数据处理类似于spark lambda风格。
4.flink的数据输入为sink,定义sink 也可以addSink来定义。
5.对应执行要使用env.execute。
其中StreamExecutionEnvironment作用类似sparkSession,
总结一下,负责任务相关的管理,调度,数据源的管理,以及部分优化,包括邮箱芜湖安图的存储和管理,任务提交与运行,缓存数据,数据源等存储与管理等。
作用如下图:



