文章 2017-11-21 来自:开发者社区

Apache Flink源码解析之stream-window

window(窗口)是Flink流处理中非常重要的概念,本篇我们来对窗口相关的概念以及关联的实现进行解析。本篇的内容主要集中在package org.apache.flink.streaming.api.windowing下。 Window 一个Window代表有限对象的集合。一个窗口有一个最大的时间戳,该时间戳意味着在其代表的某时间点——所有应该进入这个窗口的元素都已经到达。 Flink的根.....

文章 2017-11-21 来自:开发者社区

Apache Flink源码解析之stream-sink

上一篇我们谈论了Flink stream source,它作为流的数据入口是整个DAG(有向无环图)拓扑的起点。那么与此对应的,流的数据出口就是跟source对应的Sink。这是我们本篇解读的内容。 SinkFunction 跟SourceFunction对应,Flink针对Sink的根接口被称为SinkFunction。继承自Function这一标记接口。SinkFunction接口只提供了.....

文章 2017-11-21 来自:开发者社区

Apache Flink源码解析之stream-windowfunction

Window也即窗口,是Flink流处理的特性之一。前一篇文章我们谈到了Winodw的相关概念及其实现。窗口的目的是将无界的流转换为有界的元素集合,但这还不是最终的目的,最终的目的是在这有限的集合上apply(应用)某种函数,这就是我们本篇要谈的主题——WindowFunction(窗口函数)。 那么窗口函数会在什么时候被应用呢?还记得上篇文章我们谈到了触发器Trigger,在触发器触发后会返回....

文章 2017-11-21 来自:开发者社区

Apache Flink源码解析之stream-transformation

之前我们聊了Flink程序的source、sink就差transformation了。今天我们就来解读一下Flink的transformation。它们三者的关系如下图: 当然这还是从Flink编程API的角度来看的(编程视角)。所谓的transformation,用于转换一个或多个DataStream从而形成一个新的DataStream对象。Flink提供编程接口,允许你组合这些transf.....

文章 2017-11-21 来自:开发者社区

Apache Flink源码解析之stream-operator

前面我们谈论了Flink stream中的transformation。你可以将transformation看成编写Flink程序并构建流式处理程序的必要组成部分(静态表现形式);而本篇我们将探讨transformation在Flink运行时对应的动态表现形式——operator。他们之间的映射关系见下图: 具体的探讨可以查看前文:Flink中的一些核心概念 StreamOperator...

文章 2017-11-21 来自:开发者社区

Apache Flink fault tolerance源码剖析(一)

因某些童鞋的建议,从这篇文章开始结合源码谈谈Flink Fault Tolerance相关的话题。上篇官方介绍的翻译是理解这个话题的前提,所以如果你想更深入得了解Flink Fault Tolerance的机制,推荐先读一下前篇文章理解它的实现原理。当然原理归原理,原理体现在代码实现里并不是想象中的那么直观。这里的源码剖析也是我学习以及理解的过程。 作为源码解析Flink Fault To...

文章 2017-11-21 来自:开发者社区

Apache Flink fault tolerance源码剖析(二)

继续Flink Fault Tolerance机制剖析。上一篇文章我们结合代码讲解了Flink中检查点是如何应用的(如何根据快照做失败恢复,以及检查点被应用的场景),这篇我们来谈谈检查点的触发机制以及基于Actor的消息驱动的协同机制。这篇涉及到一个非常关键的类——CheckpointCoordinator。 org.apache.flink.runtime.checkpoint.Check...

文章 2017-11-21 来自:开发者社区

Apache Flink fault tolerance源码剖析(三)

上一篇文章我们探讨了基于定时任务的周期性检查点触发机制以及基于Akka的actor模型的消息驱动协同机制。这篇文章我们将探讨Zookeeper在Flink的Fault Tolerance所起到的作用。 其实,Flink引入Zookeeper的目的主要是让JobManager实现高可用(leader选举)。 因为Zookeeper在Flink里存在多种应用场景,本篇我们还是将重心放在Fault...

文章 2017-11-21 来自:开发者社区

Apache Flink fault tolerance源码剖析(四)

上篇文章我们探讨了Zookeeper在Flink的fault tolerance中发挥的作用(存储/恢复已完成的检查点以及检查点编号生成器)。 这篇文章会谈论一种特殊的检查点,Flink将之命名为——Savepoint(保存点)。 因为保存点只不过是一种特殊的检查点,所以在Flink中并没有太多代码实现。但作为一个特性,值得花费一个篇幅来介绍。 检查点VS保存点 使用数据流API编写的程序可以.....

文章 2017-11-21 来自:开发者社区

Apache Flink fault tolerance源码剖析(五)

上一篇文章我们谈论了保存点的相关内容,其中就谈到了保存点状态的存储。这篇文章我们来探讨用户程序状态的存储,也是在之前的文章中多次提及的state backend(中文暂译为状态终端)。 基于数据流API而编写的程序经常以各种各样的形式保存着状态: 窗口收集/聚合元素(这里的元素可以看作是窗口的状态)直到它们被触发 转换函数可能会使用key/value状态接口来存储数据 转换函数可能实...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Apache Spark 中国技术社区

阿里巴巴开源大数据技术团队成立 Apache Spark 中国技术社区,定期推送精彩案例,问答区数个 Spark 技术同学每日在线答疑,只为营造 Spark 技术交流氛围,欢迎加入!

+关注
相关镜像