
从零开始学Flink
菜鸡大数据
这个作者很懒,什么都没留下…
展开
-
Flink TTL
什么是TTL? 我们都知道,状态是不断累积的,占用的空间也就不断增大,对于作业中定义了超长的时间窗口,或者在动态表上应用了无限范围的 GROUP BY 语句,以及执行了没有时间窗口限制的双流 JOIN 等等操作,就容易出现OOM如何解决? Flink引入了TTL特性,作用就是对作业中的state进行清理,并设置了好几种清理模式如何使用?官网示例import org.apache.flink.api.common.state.StateTtlConfig;import org.apach转载 2020-08-03 15:20:20 · 2163 阅读 · 2 评论 -
State 操作
State 操作关于State的概念在理论篇已经讲过,本篇文章着重讲的是State的实战主要围绕这两部分State的各种种类的使用state数据清理Keyed State前提条件:keyed state只作用在keyedStreamKeyed State种类ValueStateListStateReducingStateAggregatingStateMapState通性:必须创建StateDescriptor来得到对应的状态句柄所有类型的状态都有clear(原创 2020-07-29 19:20:13 · 1680 阅读 · 0 评论 -
Stream API开发指南之EventTime &Watermark
Event Time使用Event Time首先要设置Time Characteristicenv.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);watermark生成水印的两大类直接在数据源端产生通过时间戳分配和water 生成器产生示例代码(数据源端产生)override def run(ctx: SourceContext[MyType]): Unit = { while (/* condit原创 2020-07-29 16:34:45 · 266 阅读 · 0 评论 -
小白学习Flink系列--第五篇(任务提交流程简述)
回顾在开始讲本篇内容之前,先回忆一下上篇文章讲了什么,主要讲了以下几点Runtime架构组件介绍Task operator chain、slot的介绍,理清了TaskManager、task slot 、task operator chain之间的关系那么自然而然的事情,讲完了基本组成,就要抛出一个主要的问题了,用村上春树的书名来表达的话就是----当你提交任务后,Flink做了什么?部署方式引子 重要的事情说三遍。Flink架构主要做的是什么呢? 资源和任务的匹配,即算子本地化原创 2020-07-23 00:47:03 · 396 阅读 · 0 评论 -
小白学习Flink系列--第四篇(架构)
如图所示,为Flink计算框架架构,在这里的架构指的就是Runtime 部分,也就是Flink core 观察上图,我们不妨猜一下Runtime的作用有哪些?提出疑问Runtime夹在资源调度和上层计算处理之间,必定存在交互,核心逻辑就是为上层Task分配底层的资源既然这样,就牵扯到任务的调度,资源的分配,以及首先得提交任务似乎就是这样,但我们需要考虑到容错性,也就是Task挂掉或者fail了怎么办?显然Runtime层需要实现此逻辑Runtime层组件介绍JobMa.原创 2020-07-22 00:01:01 · 176 阅读 · 0 评论 -
小白学习Flink系列–第三篇(概念)之state
State概念Flink state是一个非常重要的概念,但却有点抽象难以理解,State是个什么玩意? 继续要和流式数据扯上了。state状态指的就是进行每一个operator的中间结果存储。还不懂?举一个例子无状态:假设有一个数组[a,b,c],对数据进行+1操作,结果为[a+1,b+1,c+1],b输出的结果受A的影响吗?显然是不受,也就是多次重放值是一样的有状态的,其实就是数据之间是有关系的,算子作用在数据上,输出的结果和之前的状态有关。State存储方式在上文中说到,state状原创 2020-07-21 01:16:37 · 244 阅读 · 0 评论 -
小白学习Flink系列--第三篇(概念)之Trigger
Trigger什么是Trigger?翻译过来中文意思是触发器,显然这个解释是懵逼的,读者肯定有以下疑问,触发什么?什么时候触发?为什么需要触发器?带着疑问我们来学习FlinkTrigger详解Trigger是干嘛的呢?读者在理解trigger的时候,一定要和watermark以及window联系起来,上节讲到watermark的语义是表示后来到达的数据再也没有小于这个时间了,window机制决定了对数据进行离散化,也就是决定数据属于哪一个窗口,watermark+windows用于处理数据原创 2020-07-20 00:16:51 · 899 阅读 · 0 评论 -
小白学习Flink系列--第三篇(概念)之Watermark
watermark什么是watermark?watermark中文译为水位线,听到这里大家可能就懵逼了,水位线是什么东西?莫慌,听我一一道来watermark出现原因在上一节我们说过,processing Time使用的是本地时间节点,所以每一次取到的都是递增有序的,而对于Event Time呢,是事件创建的时间,时间和记录是绑定的。那么问题就来了,由于网络等原因,数据可能会存在乱序,比如前一条数据被堵住,而后一条数据发送成功。如下图所示:理想的情况下是这样的:而由于网络等原因,部分数据存在延原创 2020-07-19 14:24:15 · 612 阅读 · 0 评论 -
小白学习Flink系列--第三篇(概念)之Time
Time的重要性Flink API总体上划分为3个层次,都一层都需要依赖时间属性,Time是流处理系统的基石之一,不仅在Flink ,在Spark也是如此Time分类Event Time数据世界的时间,也就是事件创建的事件。根据每一条处理记录携带的时间戳来判定Processing Time是模拟真实世界的时间,简而言之,可以理解为本地系统时间,也是Flink默认的时间属性,通过直接调用本地机器时间获取Ingestion Time数据进入Flink的时间如何选择F原创 2020-07-19 09:25:46 · 192 阅读 · 0 评论 -
小白学习Flink系列--第二篇-02(流式数据模型)
The world beyond batch: Streaming 102原文作者:Tyler Akidau译者: 董捷简介欢迎回来!如果你错过了前一篇博文,The world beyond batch: Streaming 101,我强烈建议先花一点时间阅读第一篇博文。第一篇博文介绍了我接下来讲述的这篇博文的一些必要的基础,我假设本篇博文的读者已经熟悉了前一篇博文内介绍的名词与概念。同时,请注意本篇博文里包含了许多动画,所以如果读者直接打印的话将丢失一些精华内容。免责申明说完了,让Part翻译 2020-07-18 15:08:30 · 579 阅读 · 0 评论 -
小白学习Flink系列--第二篇-01(流式数据概念)
导读要想彻底理解Flink,就要了解流数据的前世今生,流数据的语义、特点,以及如何处理,以下文章就能很好的解释流数据的概念和模型,对了解Flink有很大的帮助前言今天流式数据处理在大数据领域是一件大事,理由如下:1、企业渴望更加及时的数据,而且采用流式处理是降低延迟的很好的办法。2、在现代企业中大的且无界的( unbounded)数据集变得更加普遍,且这些数据更容易被一个针对无界数据设计的系统所使用。随着时间的推移,和数据到达pipeline,数据处理的工作负载将更均匀地分布,从而产生更一致和可翻译 2020-07-18 14:46:39 · 1502 阅读 · 0 评论 -
小白学习Flink系列--第一篇(知识图谱)
小白学习Flink系列–第一篇(知识图谱)如何学习Flink? 对于一门计算机技术来说,如何快速学习上手呢?具体的逻辑是什么呢?我认为有以下几条了解技术的应用场景技术的基本概念,如何使用,以及如何部署(针对大数据组件而言)技术的功能特点技术源码,优缺点知识图谱详解核心概念Flink的核心概念实际上是流式处理的概念,对于流式数据来说最重要的就是时间Time类型Processing TimeEvent TimeIngestion TimeWatermark原创 2020-07-18 00:36:09 · 622 阅读 · 1 评论