Flink
文章平均质量分 55
L.ZZ
这个作者很懒,什么都没留下…
展开
-
Flink基于EventTime和WaterMark处理乱序事件和晚到的数据(三)
1. 相关概念在实际的业务中,我们经常会遇到数据迟到的情况,这个时候基于窗口进行计算的结果就不对了,Flink中watermark就是为了解决这个问题的,理解watermark之前,先来说一下flink中的三个与流数据相关的概念,ProcessTime、EventTime、IngestionTime,不然很难理解watermark是怎么回事.我们先来看一下官网给出的一张图,非常形象地展示了Pr...转载 2019-02-27 14:08:17 · 2624 阅读 · 1 评论 -
Flink 原理与实现:Session Window
1. 前言在上一篇文章:Window机制中,我们介绍了窗口的概念和底层实现,以及 Flink 一些内建的窗口,包括滑动窗口、翻滚窗口。本文将深入讲解一种较为特殊的窗口:会话窗口(session window)。建议您在阅读完上一篇文章的基础上再阅读本文。当我们需要分析用户的一段交互的行为事件时,通常的想法是将用户的事件流按照“session”来分组。session 是指一段持续活跃的期间,由活...转载 2019-02-27 14:07:58 · 3030 阅读 · 0 评论 -
Flink的Scala AP扩展
1. 前言为了在Scala和Java API之间保持相当的一致性,在批处理和流处理的标准API中省略了一些允许Scala高级表达性的功能。2. 增加Scala API扩展如果想使用完整的Scala体验,可以选择加入扩展来通过隐式转换增强Scala API。对于DataSet API要使用所有可用的扩展,只需为DataSet API添加一个简单的导入:import org.apach...原创 2019-02-27 14:17:19 · 185 阅读 · 0 评论 -
Flink中的keyby分流与window操作
1. Stream分流Window是无限数据流处理的核心,Window将一个无限的stream拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作。 窗口化的Flink程序的一般结构如下,第一个代码段中是分组的流,而第二段是非分组的流。正如我们所见,唯一的区别是分组的stream调用keyBy(…)和window(…),而非分组的stream中window()换成了window...原创 2019-02-27 14:17:05 · 15208 阅读 · 1 评论 -
Flink 概述
1.概述 在如今数据爆炸的时代,企业的数据量与日俱增,大数据产品层出不穷。今天给大家分享一款产品—— Apache Flink,目前,已是 Apache 顶级项目之一。那么,接下来,笔者为大家介绍Flink 的相关内容。2.内容2.1 What's Flink Apache Flink 是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink...转载 2019-02-27 14:01:13 · 155 阅读 · 0 评论 -
一文了解 Apache Flink 核心技术
1. Apache Flink 介绍Apache Flink 是近年来越来越流行的一款开源大数据计算引擎,它同时支持了批处理和流处理,也能用来做一些基于事件的应用。使用官网的一句话来介绍 Flink 就是 “Stateful Computations Over Streams”。首先 Flink 是一个纯流式的计算引擎,它的基本数据模型是数据流。流可以是无边界的无限流,即一般意义上的流处理。也...转载 2019-02-27 14:04:55 · 332 阅读 · 0 评论 -
Apache Flink状态管理和容错机制介绍
1. 有状态的流数据处理1.1 什么是有状态的计算计算任务的结果不仅仅依赖于输入,还依赖于它的当前状态,其实大多数的计算都是有状态的计算。比如wordcount,给一些word,其计算它的count,这是一个很常见的业务场景。count做为输出,在计算的过程中要不断的把输入累加到count上去,那么count就是一个state。1.2 传统的流计算系统缺少对于程序状态的有效支持(1...转载 2019-03-04 09:39:40 · 167 阅读 · 0 评论 -
Apache Flink 容错机制
1. IntroduceApache Flink 提供了可以恢复数据流应用到一致状态的容错机制。确保在发生故障时,程序的每条记录只会作用于状态一次(exactly-once),当然也可以降级为至少一次(at-least-once)。容错机制通过持续创建分布式数据流的快照来实现。对于状态占用空间小的流应用,这些快照非常轻量,可以高频率创建而对性能影响很小。流计算应用的状态保存在一个可配置的环境,...转载 2019-03-12 10:41:01 · 220 阅读 · 0 评论 -
flink编译报错:could not find implicit value for evidence parameter of type org.apache.flink.api.common..
1. 前言错误描述:Error:(33, 20) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[utils.CsvFormatter.UserBehavior] env.createInput(pair.g...原创 2019-02-27 14:17:54 · 8682 阅读 · 7 评论 -
Flink 原理与实现:Window 机制
1. 前言Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁。Flink 提供了非常完善的窗口机制,这是我认为的 Flink 最大的亮点之一(其他的亮点包括消息乱序处理,和 checkpoint 机制)。本文我们将介绍流式处理中的窗口概...转载 2019-02-27 14:07:49 · 146 阅读 · 0 评论 -
Apache Beam 剖析
1. 概述在大数据的浪潮之下,技术的更新迭代十分频繁。受技术开源的影响,大数据开发者提供了十分丰富的工具。但也因为如此,增加了开发者选择合适工具的难度。在大数据处理一些问题的时候,往往使用的技术是多样化的。这完全取决于业务需求,比如进行批处理的MapReduce,实时流处理的Flink,以及SQL交互的Spark SQL等等。而把这些开源框架,工具,类库,平台整合到一起,所需要的工作量以及复杂度...转载 2019-02-27 14:08:41 · 209 阅读 · 0 评论 -
Flink 原理与实现:Table & SQL API
1. 前言Flink 已经拥有了强大的 DataStream/DataSet API,可以基本满足流计算和批计算中的所有需求。为什么还需要 Table & SQL API 呢?首先 Table API 是一种关系型API,类 SQL 的API,用户可以像操作表一样地操作数据,非常的直观和方便。用户只需要说需要什么东西,系统就会自动地帮你决定如何最高效地计算它,而不需要像 DataStr...转载 2019-02-27 14:09:00 · 1181 阅读 · 0 评论 -
Flink 原理与实现:Aysnc I/O
1. 背景Async I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入。主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户a的查询请求,然后等待结果返回,在这之前,我们无法发送用户b的查询请求。这是一种同步访问的模式,如下图左边所示。...转载 2019-02-27 14:09:09 · 171 阅读 · 0 评论 -
Flink 小贴士 (2):Flink 如何管理 Kafka 消费位点
在本周的《Flink Friday Tip》中,我们将结合例子逐步讲解 Apache Flink 是如何与 Apache Kafka 协同工作并确保来自 Kafka topic 的消息以 exactly-once 的语义被处理。检查点(Checkpoint)是使 Apache Flink 能从故障恢复的一种内部机制。检查点是 Flink 应用状态的一个一致性副本,包括了输入的读取位点。在发生故障...转载 2019-02-27 14:09:18 · 1076 阅读 · 0 评论 -
Flink 原理与实现:架构和拓扑概览
1. 架构要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。下方是 Flink 集群启动后架构图。当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager...转载 2019-02-27 14:06:51 · 128 阅读 · 0 评论 -
Flink 原理与实现:内存管理
1. 前言如今,大数据领域的开源框架(Hadoop,Spark,Storm)都使用的 JVM,当然也包括 Flink。基于 JVM 的数据分析引擎都需要面对将大量数据存到内存中,这就不得不面对 JVM 存在的几个问题:Java 对象存储密度低。一个只包含 boolean 属性的对象占用了16个字节内存:对象头占了8个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个bit(...转载 2019-02-27 14:07:01 · 128 阅读 · 0 评论 -
Flink 原理与实现:理解 Flink 中的计算资源
1. 前言本文所讨论的计算资源是指用来执行 Task 的资源,是一个逻辑概念。本文会介绍 Flink 计算资源相关的一些核心概念,如:Slot、SlotSharingGroup、CoLocationGroup、Chain等。并会着重讨论 Flink 如何对计算资源进行管理和隔离,如何将计算资源利用率最大化等等。理解 Flink 中的计算资源对于理解 Job 如何在集群中运行的有很大的帮助,也有利...转载 2019-02-27 14:07:12 · 679 阅读 · 0 评论 -
Flink 原理与实现:数据流上的类型和操作
1. 前言Flink 为流处理和批处理分别提供了 DataStream API 和 DataSet API。正是这种高层的抽象和 flunent API 极大地便利了用户编写大数据应用。不过很多初学者在看到官方 Streaming 文档中那一大坨的转换时,常常会蒙了圈,文档中那些只言片语也很难讲清它们之间的关系。所以本文将介绍几种关键的数据流类型,它们之间是如何通过转换关联起来的。下图展示了 F...转载 2019-02-27 14:07:21 · 584 阅读 · 0 评论 -
分布式Snapshot和Flink Checkpointing简介
1. 分布式系统模型和状态定义1.1 分布式系统模型分布式系统是一个包含有限进程和有限消息通道的系统,这些进程和通道可以用一个有向图描述,其中节点表示进程,边表示通道。如下图所示:p、q分别是进程,c, c’则是消息通道。另外为了问题描述的简洁,对上述模型还做了假设:消息通道只包含有限的buffer、消息保序、通道可靠等1.2 分布式系统状态(State)所谓的Distributed ...转载 2019-03-12 16:49:15 · 403 阅读 · 0 评论