
Flink
文章平均质量分 63
Flink..........阿里巴巴主推 批流统一的大数据计算框架
LBJ_小松鼠
这个作者很懒,什么都没留下…
展开
-
关于FlinkCDC 2.0的官网最新说明
目录CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC 。目前通常描述的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。CDC 技术的应用场景非常广泛:1. Dynamic Table & ChangeLog Stream2. 传统 CDC ETL 分析3. 基于 Flink CDC 的 ETL 分析4. Flink CDC 项目发展1. Flink C原创 2021-08-13 14:34:31 · 4513 阅读 · 0 评论 -
Flink的性能优化小结
1- 复用对象stream .apply(new WindowFunction<WikipediaEditEvent, Tuple2<String, Long>, String, TimeWindow>() { @Override public void apply(String userName, TimeWindow timeWindow, Iterable<WikipediaEditEvent> iterable, Coll原创 2021-08-09 10:08:17 · 335 阅读 · 0 评论 -
关于Flink的Metrics监控说明
1-Metrics介绍由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,开发人员无法实时查看所有的 Task 日志,比如作业很大或者有很多作业的情况下,该如何处理?此时 Metrics可以很好的帮助开发人员了解作业的当前状况。Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。2- Metric TypesMetrics 的类型如下:1,常用的如 Counter,写过 mapreduce 作业的开发人员就应该很熟原创 2021-08-09 09:49:31 · 1143 阅读 · 0 评论 -
Flink中的双流Join详解
1-Flink中双流Join介绍注意:双流Join是Flink面试的高频问题Join大体分类只有两种:Window Join和Interval Join。Window Join又可以根据Window的类型细分出3种:Tumbling Window Join、Sliding Window Join、Session Widnow Join。Windows类型的join都是利用window的机制,先将数据缓存在Window State中,当窗口触发计算时,执行join操作;interval joi原创 2021-08-05 21:50:02 · 5577 阅读 · 0 评论 -
Flink高级特性之BroadcastState广播状态
1- 简介在开发过程中,如果遇到需要下发/广播配置、规则等低吞吐事件流到下游所有 task 时,就可以使用 Broadcast State。Broadcast State 是 Flink 1.5 引入的特性。下游的 task 接收这些配置、规则并保存为 BroadcastState, 将这些配置应用到另一个数据流的计算中 。场景例子:1)动态更新计算规则: 如事件流需要根据最新的规则进行计算,则可将**规则(数据量较少的)**作为广播状态广播到下游Task中。2)实时增加额外字段: 如事件流需要原创 2021-08-05 12:46:23 · 1340 阅读 · 0 评论 -
Flink Connectors之消费Kafka数据相关参数以及API说明
1-参数设置以下参数都必须/建议设置上1.订阅的主题2.反序列化规则3.消费者属性-集群地址4.消费者属性-消费者组id(如果不设置,会有默认的,但是默认的不方便管理)5.消费者属性-offset重置规则,如earliest/latest…6.动态分区检测(当kafka的分区数变化/增加时,Flink能够检测到!)7.Checkpoint会把offset随着做Checkpoint的时候提交到Checkpoint和默认主题中2- 参数说明注意:实际的生产环境中可能有这样一些需求原创 2021-08-04 12:36:54 · 3580 阅读 · 1 评论 -
Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!
简介:2020-5-20 阿里巴巴官网发布Flink 1.13.0 版本,可以让流处理应用的使用像普通应用一样简单和自然,并且让用户可以更好地理解流作业的性能。重要特性被动扩缩容Flink 项目的一个初始目标,就是希望流处理应用可以像普通应用一样简单和自然,被动扩缩容是 Flink 针对这一目标上的最新进展。当考虑资源管理和部分的时候,Flink 有两种可能的模式。用户可以将 Flink 应用部署到 k8s、yarn 等资源管理系统之上,并且由 Flink 主动的来管理资源并按需分配和释放.转载 2021-06-11 15:09:24 · 475 阅读 · 3 评论 -
关于Flink实现TopN的思路(Java代码)
TopN 是统计报表和大屏非常常见的功能,主要用来实时计算排行榜。流式的TopN可以使业务方在内存中按照某个统计指标(如出现次数)计算排名并快速出发出更新后的排行榜。我们以统计词频为例展示一下如何快速开发一个计算TopN的flink程序。flink支持各种各样的流数据接口作为数据的数据源,本次demo我们采用内置的socketTextStream作为数据数据源。StreamExecutionEnvironment env = StreamExecutionEnvironment.getE.转载 2021-03-20 09:59:59 · 1937 阅读 · 2 评论 -
关于Flink的批处理和流处理的 Table & SQL API详解
1- Table API & SQL之入门案例以案例形式,讲解Table API和SQL 基本使用,分别针对批处理和流计算使用Table API和SQL分析数据。首先看一下Flink Table API和SQL使用,构建应用步骤。第一步、添加依赖第2步、具体提供API 目前新版本(当前使用版本Flink 1.10)Flink的Table和SQL的API还不够稳定,依然在不断完善中,所以课程中的案例还是以老版本文档的API来演示。1)、获取环境批处理Batch:Exec原创 2021-03-11 10:52:02 · 2604 阅读 · 2 评论 -
Flink中关于 Table 和 SQL API详解
1- Table API & SQL之概述及发展史在Flink 流式计算引擎中,提供Flink Table API & SQL模块,类似SparkSQL模块,提供高层次API,以便用户使用,开发程序更加简单。官网为什么需要Table API & SQL???Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。Table API & SQL的特点:Table API&原创 2021-03-11 10:13:01 · 346 阅读 · 0 评论 -
关于Flink最底层Processing的API详解
简介: 在常规的业务开发中,SQL、Table API、DataStream API比较常用,处于Low-level的Porcession相对用得较少,通过实战来熟悉处理函数(Process Function)。官方针对最底层API,提供方法:process方法,其中需要实现ProcessFunction函数/** * @author liu a fu * @version 1.0 * @date 2021/3/10 0010 * @DESC 基于Flink提供ProcessFunctio原创 2021-03-11 10:00:11 · 356 阅读 · 0 评论 -
Flink中 End-to-End Exactly-Once数据一致性语义详解
1- 数据处理语义对于批处理,fault-tolerant(容错性)很容易做,失败只需要replay,就可以完美做到容错。对于流处理,数据流本身是动态,没有所谓的开始或结束,虽然可以replay buffer的部分数据,但fault-tolerant做起来会复杂的多。流处理引擎通常为应用程序提供了三种数据处理语义:1)、最多一次:At-most-once:数据可能丢失,没有进行处理2)、至少一次:At-least-once,数据可能被处理多次3)、精确一次:Exactly-once,原创 2021-03-09 20:14:39 · 805 阅读 · 0 评论 -
Flink中关于Save point的详解
1- Savepoint概述Flink流式计算,提供Checkpoint机制,程序自动将State进行快速Snapshot,然后进行Checkpoint保存。此外,还支持用户可以手动进行Snapshot,保存State数据,称为:SavePoint保存点。Savepoint:保存点,类似于以前玩游戏的时候,遇到难关/遇到boss,赶紧手动存个档,然后接着玩,如果失败了,赶紧从上次的存档中恢复,然后接着玩。Checkpoint 与Savepoint区别:2- Savepoint演示案例演原创 2021-03-09 19:59:09 · 1903 阅读 · 0 评论 -
关于Flink的checkpoint的案例演示
编写Flink入门案例程序,词频统计WordCount,自定义数据源,产生数据:spark flink,设置Checkpoint,运行程序,查看Checkpoint检查点数据存储。代码:// TODO: ================= 建议必须设置 ===================// a. 设置Checkpoint-State的状态后端为FsStateBackend,本地测试时使用本地路径,集群测试时使用传入的HDFS的路径if (args.length < 1) { env.原创 2021-03-09 19:41:47 · 1388 阅读 · 0 评论 -
Flink Checkpoint之StateBackend 状态后端详解
简介: Checkpoint其实就是Flink中某一时刻,所有的Operator的全局快照,那么快照应该要有一个地方进行存储,而这个存储的地方叫做状态后端(StateBackend)。官网解释1)、MemStateBackend2)、FsStateBackend3)、RocksDBStateBackend总述,Flink StateBackend状态后端实现类:...原创 2021-03-09 16:33:00 · 939 阅读 · 0 评论 -
Flink的四大基石之---Checkpoint详解
1- 容错机制Checkpoint检查点理解首先状态State与检查点Checkpoint之间关系:Checkpoint将某个时刻应用状态State进行快照Snapshot保存。1)、State:维护/存储的是某一个Operator的运行的状态/历史值,是维护在内存中。2)、Checkpoint:某一时刻,Flink中所有的Operator的当前State的全局快照,一般存在磁盘上。Flink中的Checkpoint底层使用了Chandy-Lamport algorithm分布式快照算法原创 2021-03-09 16:13:02 · 3000 阅读 · 0 评论 -
Flink State中关于Keyed State 以及 Operator State 案例详解
1- Keyed State案例以WordCount 的 sum 所使用的StreamGroupedReduce类为例,讲解了如何在代码中使用需求:使用KeyState中的ValueState获取数据中的最大值(实际中直接使用maxBy即可)用户自己管理KeyedState,存储Key的状态值,步骤如下://-1.定义一个状态用来存放最大值private transient ValueState<Long> maxValueState;//-2.创建一个状态描述符对象Value原创 2021-03-09 15:53:41 · 992 阅读 · 0 评论 -
Flink的四大基石之---Flink State状态计算详解
1- 什么是Flink State状态计算简介: Flink之所以能这么流行,离不开它最重要的四个基石:Checkpoint、State、Time、Window。1)、窗口Window和时间Time(事件时间)2)、状态State和检查点Checkpoint状态计算:流式计算中,从数据源,到数据转换,最后数据终端,都会对State状态进行关联。无状态计算:有状态(State)计算:2- Flink State 状态组织形式划分官网文档:https://ci.apache.org/原创 2021-03-09 14:41:43 · 912 阅读 · 0 评论 -
Flink Streaming File Sink使用 以及 关于并行度的解释
StreamingFileSink是Flink1.7中推出的新特性,可以用来将分区文件写入到支持 Flink FileSystem 接口的文件系统中,支持Exactly-Once语义。文档:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/connectors/streamfile_sink.html1.初始化流计算运行环境 2.设置Checkpoint(10s)周期性启动3.指定并行度为14.接入sock.原创 2021-03-09 10:39:58 · 1545 阅读 · 0 评论 -
Flink Time中Allowed Lateness 功能详解
1- allowedLateness的应用场景简介: 延迟数据是指:在当前窗口【假设窗口范围为10-15】已经计算之后,又来了一个属于该窗口的数据【假设事件时间为13】,这时候仍会触发window操作,这种数据就称为延迟数据。针对基于事件时间EventTime窗口分析,如何解决乱序数据和延迟数据的呢???某个窗口已经被触发计算,但是不会立即销毁,等待Time(允许数据迟到的时间),如果此时间内有延迟数据到达,进行计算。`设置允许延迟数据处理方法:`- 设置允许延迟的时间是通过`all原创 2021-03-09 10:32:43 · 2834 阅读 · 0 评论 -
关于Flink Time中的Watermaker案例的详解
需求:自定义数据源,产出交易订单数据,设置基于事件时间窗口统计。1)、交易订单数据import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;/** * @author liu a fu * @version 1.0 * @date 2021/3/9 0009 * @DESC TODO: 自定义数据源,产出交易订单数据,设置基于事件时间窗口统计。 */@Data@N原创 2021-03-09 09:47:52 · 392 阅读 · 0 评论 -
Flink Time中Watermaker 水位线机制详解
1. Flink Time中水位线的引入简介: 针对前面讲解基于事件时间EventTime窗口分析,默认情况下,如果某个窗口触发计算以后,再来一条窗口内的数据,此时不会计算这条数据,而是直接丢弃。在实际业务数据中,数据乱序到达流处理程序,属于正常现象,原因在于网络延迟到导致数据延迟,无法避免的,所以应该可以允许数据延迟达到(在某个时间范围内),继续计算。比如允许数据最大乱序延迟时间为2秒,那么此时只要符合时间范围乱序时间都会处理,此种机制:Watermark水位线。什么是watermaker机制:原创 2021-03-08 22:21:03 · 778 阅读 · 1 评论 -
Flink Time中事件时间案例详解
需求:基于事件时间EventTime Tumbling Window窗口【5秒】,进行聚合统计:WordCount。`准备数据`1000,a,12000,a,15000,a,19999,a,111000,a,214000,b,114999,b,1如果使用基于事件时间EventTime窗口统计,需要如下三个步骤:import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.ap.原创 2021-03-08 22:10:11 · 744 阅读 · 0 评论 -
Flink的四大基石之---Flink Time 时间 以及 时间分类详解
1. Flink Time时间的分类简介: 在Flink流计算中,关于时间语义支持三种,其中2种语义最为关键:1)、处理时间ProcessingTime,使用处理时间SparkStreaming时,窗口计算,使用的就是处理时间2)、事件时间EventTime,最为合理StructuredStreaming中,窗口计算,使用的是事件时间在Flink的流式处理中,会涉及到时间的不同概念,如下图所示:1)、事件时间EventTime事件真真正正发生产生的时间,比如订单数据中订单原创 2021-03-08 21:38:05 · 554 阅读 · 0 评论 -
Flink Window中的window 和 apply()方法详解
简介: 前面讲解的3中Window窗口案例中,尤其是时间窗口TimeWindow中,没有看见Window大小(起始时间,结束时间),使用apply函数,就可以获取窗口大小。import org.apache.commons.lang3.time.FastDateFormat;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple;import org.原创 2021-03-08 21:22:43 · 6001 阅读 · 0 评论 -
Flink Window中时间会话窗口详解(了解)
Flink流计算中支持:会话窗口Session,但是基于时间的,需要设置超时时间间隔需求:设置会话超时时间为5s,5s内没有数据到来,则触发上个窗口的计算import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple1;import org.apache.flink.streaming.api.datastream.DataStreamSource;im.原创 2021-03-08 21:08:34 · 860 阅读 · 0 评论 -
Flink Window中关于计数窗口的详解
1- 关于计数窗口的解释2.滚动计数窗口的案例详解需求:统计在最近5条消息中,数字之和sum值import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple1;import org.apache.flink.streaming.api.datastream.DataStreamSource;import org.apache.flink.streami原创 2021-03-08 21:02:46 · 948 阅读 · 0 评论 -
Flink中关于Window API 演示以及时间窗口详解
1. Flink中窗口的API分类在Flink流计算中,提供Window窗口API分为两种1)、针对KeyedStream窗口API:window第一步、数据流DataStream调用keyBy函数分组,获取KeyedStream第二步、KeyedStream.window设置窗口第三步、聚合操作,对窗口中数据进行聚合统计函数:reduce、fold、aggregate函数apply() 函数也就是调用了keyBy算子的,使用window// TODO: KeyedStre原创 2021-03-08 20:47:59 · 338 阅读 · 0 评论 -
Flink的四大基石之---Flink Window窗口分类详解
前言: Flink之所以能这么流行,离不开它最重要的四个基石:Checkpoint、State、Time、Window。Window窗口官网详解Time时间事件官网详解state状态官网详解checkpoint检查点官网详解1.窗口Window概述在Flink流式计算中,最重要以转换就是窗口转换Window。在上述的DataStream转换图中,可以发现处处都可以对DataStream进行窗口计算。在实际项目,Flink流计算,如果对DataStream流进行窗口计算时,通常使用原创 2021-03-07 20:38:29 · 704 阅读 · 0 评论 -
Flink On Yarn开发程序部署的两种方式详解
1- 首先编写一个参数传递的Flink的WordCount代码import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.api.java.utils.ParameterTool;imp原创 2021-03-03 21:33:16 · 424 阅读 · 1 评论 -
Flink on Yarn两种运行模式详解
简介: 在一个企业中,为了最大化的利用集群资源,一般都会在一个集群中同时运行多种类型的Workload,因此 Flink 也支持在 Yarn 集群运行。1.为什么使用Flink On Yarn?1)、Yarn的资源可以按需使用,提高集群的资源利用率2)、Yarn的任务有优先级,根据优先级运行作业3)、基于Yarn调度系统,能够自动化地处理各个角色的 Failover(容错)当应用程序(MR、Spark、Flink)运行在YARN集群上时,可以实现容灾恢复。当Flink on YARN 运行时原创 2021-03-03 20:50:28 · 2141 阅读 · 2 评论 -
Flink的前世今生的概述
1.Flink 概述Apache Flink 官网:https://flink.apache.org/注意: 在Flink 1.12.0 中淘汰了 DatasetAPI 统一使用了 DataStreamAPI2. 实时既未来为什么说流处理即未来? https://news.qudong.com/article/562521.shtml3.Flink的背景Flink 诞生于欧洲的一个大数据研究项目 StratoSphere。该项目是柏林工业大学的一个研究性项目。早期,Flink 是做原创 2021-03-03 10:13:32 · 3371 阅读 · 10 评论 -
深入理解大数据架构之——Lambda架构
传统系统的问题“我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你好”——阿里巴巴董事局主席马云。数据量从M的级别到G的级别到现在T的级、P的级别。数据量的变化数据管理系统(DBMS)和数仓系统(DW)也在悄然的变化着。 传统应用的数据系统架构设计时,应用直接访问数据库系统。当用户访问量增加时,数据库无法支撑日益增长的用户请求的负载时,从而导致数据库服务器无法及转载 2021-02-26 09:32:28 · 503 阅读 · 0 评论