028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

ApacheFlink官方文档--概念

数据流编程模型

原文链接
博主理解篇

创新互联长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为郊区企业提供专业的成都网站建设、成都网站设计,郊区网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

抽象层次

  Flink提供不同级别的抽象来开发流/批处理应用程序。

Apache Flink 官方文档--概念

  低阶的处理函数集成了DataStream API,这样就可以针对特性的操作使用低层级的抽象。DataSet API 为有边界的 data sets提供了附加的原语,例如循环/迭代。

时间(Time)

  当提到流程序(例如定义窗口)中的时间时,你可以参考不同的时间概念:

有状态的操作

  尽管数据流中的很多操作一次只查看一个独立的事件(比如事件解析器),有些操作却会记录多个事件间的信息(比如窗口算子)。 这些操作被称为有状态的
 有状态操作的状态保存在一个可被视作嵌入式键/值存储的部分中。状态由有状态operator读取的流一起被严格地分区与分布。因此,只能访问一个 keyBy() 函数之后的 keyed streams 的键/值状态,并且仅限于与当前事件键相关联的值。调整流和状态的键确保了所有状态更新都是本地操作,以在没有事务开销的情况下确保一致性。这种对齐还使得Flink可以透明地重新分配状态与调整流的分区。
Apache Flink 官方文档--概念
查看更多信息,请查看此文档有关state的内容。

容错检查点

  Flink使用流重放检查点的结合实现了容错。检查点与每个输入流的特定点及与相关的每一个operator的状态相关。一个数据流可以从一个检查点恢复出来,其中通过恢复operator状态并从检查点重放事件以保持一致性 (一次处理语义)
 检查点间隔是以恢复时间(需要重放的事件数量)来消除执行过程中容错的开销的一种手段。
 容错内部的描述提供了更多关于flink管理检查点和相关的话题。启用和配置检查点的详细信息请查看这个文档checkpointing API docs。

流式批处理

  Flink将批处理程序作为流处理程序的特殊情况来执行,只是流是有界的(有限个元素)。 DataSet 内部被视为数据流。上述适用于流处理程序的概念同样适用于批处理程序,除了一些例外:

分布式运行时

原文链接

任务和Operator链

  对于分布式运行,Flink将operator子任务链接在一起放入任务池。每个任务由一个线程执行。将operator链接到任务池中是一项有用的优化:它减少线程到线程的切换和缓冲的开销,并在降低延迟的同时提高整体吞吐量。可以配置链接行为,有关详细信息,请查阅链接文档。
 下图中的示例数据流由五个子任务执行,因此有五个并行线程。
Apache Flink 官方文档--概念

作业管理器,任务管理器,客户端

  Flink运行时有两种类型的进程组成:

状态后端(State Backends)

  存储键/值对索引的确切数据结构取决于所选的状态后端。一个状态后端将数据存储在内存中的哈希映射中,另一个状态后端使用[RocksDB]()作为键/值对存储。除了定义保存状态的数据结构之外,状态后端还实现逻辑以获取键/值对状态的时间点快照,并将该快照存储为检查点的一部分。
Apache Flink 官方文档--概念

保存点Savepoints

  用Data Stream API编写的程序可以从保存点恢复执行。保存点允许更新程序和Flink集群,而不会丢失任何状态。
 保存点是手动触发的检查点,它会获取程序的快照并将其写入状态后端。他们依靠常规的检查点机制。在执行期间,程序会定期在工作节点上创建快照并生成检查点。对于恢复,仅仅需要最后完成的检查点,因此一旦新的检查点完成,就可以安全地丢弃旧的检查点。
 保存点与这些定期检查点类似,不同之处在于它们由用户触发,并且在较新的检查点完成时不会自动过期。可以从命令行或通过REST API取消作业时创建保存点。


文章名称:ApacheFlink官方文档--概念
标题链接:http://www.tsicrk.com/article/pgechj.html

其他资讯

让你的专属顾问为你服务

0.8917s