浅谈Flink

本秂侑毒 提交于 2020-04-22 21:10:37

浅谈Flink
Apache Flink 是一个面向数据流处理和批量数据处理的分布式的开源计算框架,能够支持流处理和批处理两种应用类型。有着低延迟、Exactly-once 保证,而批处理需要支持高吞吐、高效处理的特点。
Flink 完全支持流处理,也就是说作为流处理看待时,输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。这与 Spark streaming 不同,Spark streaming 是将流处理视为无限个有界的批处理(microbatch)。
Flink 特点
有状态计算的 Exactly-once 语义。状态是指 flink 能够维护数据在时序上的聚类和聚合,同时它的 checkpoint 机制可以方便快速的做出失败重试;
支持带有事件时间(event time)语义的流处理和窗口处理。事件时间的语义使流计算的结果更加精确,尤其在事件到达无序或者延迟的情况下;
支持高度灵活的窗口(window)操作。支持基于 time、count、session,以及 data-driven 的窗口操作,能很好的对现实环境中的创建的数据进行建模;
轻量的容错处理(fault tolerance)。它使得系统既能保持高的吞吐率又能保证 exactly-once 的一致性。通过轻量的 state snapshots 实现;
支持高吞吐、低延迟、高性能的流处理;
支持 savepoints 机制(一般手动触发),可以将应用的运行状态保存下来;在升级应用或者处理历史数据上,能够做到无状态丢失和最小停机时间;
支持大规模的集群模式,支持 yarn、Mesos。可运行在成千上万的节点上;
支持具有 Backpressure 功能的持续流模型;
Flink 在 JVM 内部实现了自己的内存管理,包括完善的内存架构和 OOM error prevention;
支持迭代计算;
支持程序自动优化:避免特定情况下 Shuffle、排序等昂贵操作,中间结果进行缓存。













易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!