Flink
文章平均质量分 59
不会打球的摄影师不是好程序员
这个作者很懒,什么都没留下…
展开
-
通过FlinkCDC将MySQL中变更的数据写入到kafka(DataStream方式)
文章目录前言一、CDC的种类?二、通过FlinkCDC将数据从MySQL导入到Kafka1.核心代码2.工具类3.可能会出现的错误及解决解决:前言CDC的Change Data Capture(变更数据捕获)的缩写FlinkCDC的核心思想是监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。一、CDC的种类?CDC 主要分为基于查询和基于 Binlog 两种方式,简述两者的区别:原创 2021-11-19 15:23:01 · 8522 阅读 · 1 评论 -
Flink的容错机制(checkpoint)
Flink的可靠性基石-Checkpoint容错机制1.概述flink 的checkpoint机制可以保证Flink 整个集群在某个算子因为某些原因出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保证应用流图的状态一致性。Flink的Checkpoint机制原理来自“Chandy-Lamport algorithm”算法。2.原理每个需要Checkpoint的应用在启动时,Flink的JobManager为其创建一个CheckpointCoordinator(检查点协调器),Check原创 2021-07-01 22:01:28 · 325 阅读 · 1 评论 -
基于Flink实时计算Demo:用户行为分析(四:在一段时间内到底有多少不同的用户访问了网站(UV))
1.需求1.在一段时间内到底有多少不同的用户访问了网站。2.另外一个统计流量的重要指标是网站的独立访客数(Unique Visitor,UV)。3.UV指的是一段时间(比如一小时)内访问网站的总人数,1 天内同一访客的多次访问只记录为一个访客。2.代码实现import org.apache.flink.streaming.api.scala.StreamExecutionEnvironmentimport org.apache.flink.api.scala._import org.apach原创 2021-05-27 22:24:20 · 268 阅读 · 0 评论 -
基于Flink实时项目:用户行为分析(三:网站总浏览量统计(PV))
1.需求:1.网站总浏览量(PV)的统计2.对于PV做一个简介:衡量网站流量一个最简单的指标,就是网站的页面浏览量(Page View,PV)。用户每次打开一个页面便记录 1 次 PV,多次打开同一页面则浏览量累计。一般来说,PV 与来访者的数量成正比,但是 PV 并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的 PV。3.思路:设置滚动时间窗口,实时统计每小时内的网站2.代码实现import org.apache.flink.api.scala._im原创 2021-05-27 22:20:22 · 669 阅读 · 0 评论 -
基于Flink实时项目:用户行为分析(二:实时流量统计)
1.需求:实时流量统计,每隔5秒钟输出最近10分钟内访问量最多的前N个URL(与上一个非常的类似)。废话不多说,直接上代码2.代码实现import org.apache.flink.api.common.functions.AggregateFunctionimport org.apache.flink.api.common.state.{ListState, ListStateDescriptor}import org.apache.flink.streaming.api.scala.Stre原创 2021-05-27 22:10:07 · 621 阅读 · 0 评论 -
基于Flink实时项目:用户行为分析(一:实时热门商品统计)
1.需求:实时热门商品的统计每隔5分钟输出一次最近一小时内点击量最多的前N个商品步骤:• 抽取出业务时间戳,告诉 Flink 框架基于业务时间做窗口• 过滤出点击行为数据• 按一小时的窗口大小,每 5 分钟统计一次,做滑动窗口聚合(Sliding Window)• 按每个窗口聚合,输出每个窗口中点击量前 N 名的商品2.代码实现:import org.apache.flink.api.common.functions.AggregateFunctionimport org.apache.f原创 2021-05-26 18:26:47 · 1006 阅读 · 0 评论 -
基于Flink实时计算Demo—关于用户行为的数据分析
项目是有关于电商的用户行为数据分析,包括以下几部分内容:1.批处理和流处理2.电商用户行为分析3.数据源分析4.项目模块划分1.批处理和流处理1.批处理概念批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。可以认为,处理的是用一个固定时间间隔分组的数据点集合。批处理模式中使用的数据集通常符合下列特征:1.有界:批处理数据集代表数据的有限集合2.持久:数据通常始终存储在某种类型的持久存储位置中3.大量:批处理操作通常是处理极为海量数据集的唯一方法2.流处理的概念流处理可以对随原创 2021-05-24 16:56:54 · 731 阅读 · 10 评论 -
flink需求之—ProcessFunction(需求:如果30秒内温度连续上升就报警)
1.ProcessFunction是flink中的大杀器(个人认为)Process Function 用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window 函数和转换算子无法实现)Flink 提供了 8 个 Process Function: ProcessFunction KeyedProcessFunction CoProcessFunction ProcessJoinFunction BroadcastProcessFunction KeyedBroad原创 2021-05-23 19:38:54 · 729 阅读 · 8 评论 -
flink需求之—SideOutPut(侧输出流的应用:将温度大于30℃的输出到主流,低于30℃的输出到侧流)
1.首先介绍一下侧输出流(SideOutPut)大部分的 DataStream API 的算子的输出是单一输出,也就是某种数据类型的流。除了 split 算子,可以将一条流分成多条流,这些流的数据类型也都相同。process function 的 side outputs 功能可以产生多条流,并且这些流的数据类型可以不一样。一个 side output 可以定义为 OutputTag[X]对象,X 是输出流的数据类型。process function 可以通过 Context 对象发射一个事件到一个或者多原创 2021-05-23 19:06:47 · 355 阅读 · 0 评论 -
Flink中的状态管理
1.状态的概念流式计算中分为无状态和有状态两种情况:1.无状态是计算观察每个独立的事件,并根据最后一个事件输出结果。2.有状态的计算则会基于多个事件输出结果2.状态的分类1.算子状态(operator state)作用的范围限定为算子任务,同一并行的任务所处理的所有数据都可以访问到相同的状态,状态对于同一任务而言是共享的。算子状态提供了三种基本的数据结构:1.列表状态(List State)将状态表示为一组数据的列表2.联合列表状态(Union list state)也是将状态表示原创 2021-05-22 22:39:14 · 194 阅读 · 4 评论 -
Flink中CheckPoint原理
1.CheckPoint原理Flink 中基于异步轻量级的分布式快照技术提供了 Checkpoints 容错机制,分布式快照 可以将同一时间点 Task/Operator 的状态数据全局统一快照处理,包括前面提到的 Keyed State 和 Operator State。Flink 会在输入的数据集上间隔性地生成 checkpoint barrier, 通过栅栏(barrier)将间隔时间段内的数据划分到相应的 checkpoint 中。如下图:解释:每隔一段时间生成一个栅栏,两个栅栏之间的数据形成原创 2021-03-27 15:20:40 · 1008 阅读 · 0 评论