
Flink
Relian哈哈
分享知识和分享苹果是不一样的,苹果会越分越少,而知识并不会因为分享而减少,知识的分享更能激荡出不一样的火花
展开
-
Flink是如何管理内存的
在讲Flink管理内存之前要了解下Flink为什么要自己实现内存管理一、Flink为什么要自己实现内存管理在大数据领域,大多数数据相关的开源框架(Hadoop、Spark、Storm)都是基于JVM运行的,但是JVM的内存管理机制往往存在着诸多类似OutOfMemoryError的问题,主要是因为创建过多的对象实例而超过JVM的最大堆内存限制,却没有被有效回收掉,这在很大程度上影响了系统的稳定性,尤其对于大数据应用,面对大量的数据对象产生,仅仅靠JVM所提供的各种垃圾回收机制很难解决内存溢出的问题。原创 2020-12-31 23:58:14 · 2991 阅读 · 1 评论 -
Flink的TableAPI与SQL介绍和使用
Flink也提供了关系型编程接口TableAPI以及基于TableAPI的SQLAPI,让用户能够通过使用结构化编程接口高效地构建Flink应用。同时TableAPI以及SQL能够统一处理批量和实时计算业务,无须切换修改任何应用代码就能够基于同一套API编写流式应用和批量应用,从而达到真正意义的批流统一。在Flink1.8中,如果用户需要同时在流计算、批处理的场景下,用户需要两套业务代码,开发人员也需要维护两套技术栈,对于开发人员来说非常麻烦。Flink社区很早就设想过讲批处理看做是一个有界流数据, 讲原创 2020-11-29 22:46:40 · 997 阅读 · 0 评论 -
Flink中窗口的划分与应用
一、Window 分类1、数据集类型划分Flink根据上游数据集是否为KeyedStream类型,即是否使用keyBy(...),分为Keyed Window和Non-Keyed Window(1)KeyedWindow上游数据集如果是KeyedStream类型,即使用了keyBy(...),则调用DataStreamAPI的window()方法,数据会根据Key在不同的Task实例中并行分别计算,最后得出针对每个Key统计的结果。程序调用流程如下:stream ...原创 2020-10-06 01:51:45 · 1507 阅读 · 0 评论 -
Flink之DataStream的常用转换算子
1、Map [DataStream->DataStream](1)说明调用用户定义的MapFunction对DataStream[T]数据进行处理,形成新的Data-Stream[T],其中数据格式可能会发生变化,常用作对数据集内数据的清洗和转换。例如将输入数据集中的每个数值全部加 1 处理,并且将数据输出到下游数据集2、FlatMap [DataStream->DataStream](1)说明该算子主要应用处理输入一个元素产生一个或者多个元素的计算场景, 比较常见的是在原创 2020-10-05 00:49:13 · 1550 阅读 · 0 评论 -
Flink的数据持久化-CheckPoint机制
Flink内存易失,利用CheckPoint机制数据持久化,偏于出现异常,应用挂掉时,做数据恢复。所谓CheckPoint(可以理解为CheckPoint是把State数据持久化存储了)则表示了一个FlinkJob在一个特定时刻的一份全局状态快照,即包含了所有Task/Operator的状态。一、CheckPoint的原理Flink中基于异步轻量级的分布式快照技术提供了Checkpoints容错机制,分布式快照可以将同一时间点Task/Operator的状态数据全局统一快照处理,包括前面提到的Key原创 2020-10-02 01:39:20 · 6788 阅读 · 2 评论 -
Flink中基本的State类型介绍
我们知道,Flink是一个默认就有状态的分析引擎,为避免Task在处理过程中挂掉了,而导致内存中的数据丢失,Flink引入了State和CheckPoint机制,其中State就是Flink的一种基于内存的状态机制,Flink提供了两种基本的状态类型。一、基本状态Keyed State与Operator State1、Keyed StateKeyed State:顾名思义就是基于KeyedStream上的状态,这个状态是跟特定的Key绑定的。KeyedStream流上的每一个Key,都对应一个S原创 2020-09-20 01:10:31 · 6357 阅读 · 1 评论 -
Flink的时间语义Time与水位线WaterMark理解与使用
一、时间语义流式数据处理,最大的特点是数据上具有时间的属性特征,Flink 根据时间产生的位置不同,将时间分为三种时间语义Event Time:事件产生的时间,它通常由事件中的时间戳描述Ingestion Time:事件进入 Flink 的时间Processing Time:事件被处理时当前系统的时间在Flink中默认情况下使用是ProcessTime时间语义,如果用户选择使用EventTime或者IngestionTime语义,则需要在创建的StreamExecutionEnviron原创 2020-09-13 22:51:52 · 1711 阅读 · 0 评论 -
Flink中的侧输出流SideOutput使用场景
一、SideOutput流作用侧输出流有两个作用:(1)分隔过滤。充当filter算子功能,将源中的不同类型的数据做分割处理。因为使用filter 算子对数据源进行筛选分割的话,会造成数据流的多次复制,导致不必要的性能浪费(2)延时数据处理。在做对延时迟窗口计算时,对延时迟到的数据进行处理,即时数据迟到也不会造成丢失二、SideOutput使用示例@Dataclass OrderLog { private String orderId; private String skuI原创 2020-09-13 01:31:44 · 5112 阅读 · 8 评论 -
Apache Flink的特点与对比Spark与Storm优势
一、Flink简介1.1、Flink的定义Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。1.2、Flink的发展Flink在德语中是快速和灵敏的意思,用来体现流式数据处理器速度快和灵活性强等特点,因此使用棕红色松鼠图案其Logo。Flink在诞生在2010-2014 年间, 由柏林工业大学、 柏林洪堡大学和哈索普拉特纳研究所联合发起名为“Stratosphere原创 2020-06-20 19:26:03 · 1710 阅读 · 0 评论