flink是一款开源的大数据流式处理框架,他能够同时批处理和流处理,具备容错性、高吞吐、低延迟等优点,本文简述flink的编程模型。html
常见的无穷数据集有:编程
Flink它能够处理有界的数据集,也能够处理无界的数据集,它能够流式的处理数据,也能够批量的处理数据。网络
从下至上:架构
一、部署:Flink 支持本地运行、能在独立集群或者在被 YARN 或 Mesos 管理的集群上运行, 也能部署在云上。 二、运行:Flink 的核心是分布式流式数据引擎,意味着数据以一次一个事件的形式被处理。 三、API:DataStream、DataSet、Table、SQL API。 四、扩展库:Flink 还包括用于复琐事件处理,机器学习,图形处理和 Apache Storm 兼容性的专用代码库。框架
抽象级别 Flink提供了不一样的抽象级别以开发流式或者批处理应用机器学习
最底层提供了有状态流,它将经过过程函数嵌入到DataStream API中,它容许用户能够自由地处理来自一个或者多个流数据的事件,并使用一致、容错的状态。除此以外,用户能够注册事件时间和处理事件回调,从而使程序能够实现复杂的计算。socket
DataStream / DataSet API 是 Flink 提供的核心 API ,DataSet 处理有界的数据集,DataStream 处理有界或者无界的数据流。用户能够经过各类方法(map / flatmap / window / keyby / sum / max / min / avg / join 等)将数据进行转换 / 计算。分布式
Table API 是以 表 为中心的声明式 DSL,其中表可能会动态变化(在表达流数据时)。Table API 提供了例如 select、project、join、group-by、aggregate 等操做,使用起来却更加简洁(代码量更少)。函数
你能够在表与 DataStream/DataSet 之间无缝切换,也容许程序将 Table API 与 DataStream 以及 DataSet 混合使用。oop
Flink 应用程序结构就是如上图所示:
Flink系列文章:
更多实时计算,Flink,Kafka等相关技术博文,欢迎关注实时流式计算
原文出处:https://www.cnblogs.com/tree1123/p/12048017.html