Apache Flink学习笔记

事件驱动型应用-定义

事件驱动型应用是一类具有状态的应用,该应用会根据事件流中的事件触发计算、更新状态或进行外部系统操作。事件驱动型应用常见于实时计算业务中,比如:实时推荐,金融反欺诈,实时规则预警等。

事件驱动型应用架构

数据和计算中间结果存储在state中 数据的完整性和正确性的维护放在远程的分布式FS中。(详细:https://blog.csdn.net/baoyu_G/article/details/112848383)

???SQL中hop函数的含义

hop(ts,INTERVAL’1’ MINUTE,INTERVAL’5’ MINUTE);//ts:为时间戳(格林威治事件距当前时间共有多少秒),第一个INTERVAL为滑动窗口的步长,第二个INTERVAL为滑动窗口的大小。

在这里插入图片描述
通过WATERMARK解决数据迟到的问题。

其中的Hop_ROWTIME()函数的作用是获取窗口中rowtime的最大值(注释:rowtime就是event_time)。

数据分析型应用

在这里插入图片描述

???数据分析型应用-Over Window(开窗)

在这里插入图片描述
其中:
1、agg1(col1)表示聚合函数。
2、PARTITION BY表示分区(意思是确定col1上的某个具体的分量)。
3、ORDER BY表示按某个属性进行排序。
4、RANGE BETWEEN (UNBOUNDED | timelnterval)PRECEDING AND CURRENT ROW)AS colName,… 表示窗口的大小(意为从当前数据往前多少个数据或者多少时间内的数据)(其中 AS colName)表示在输出时给这个over函数计算出的这一列内容起个别名。

???UDF

指的是flink中的自定义函数

数据管道型应用

在这里插入图片描述

???ELT中的L

???数据库仓库与数据湖

???数据仓库中的schame

何为算子?

在流处理、交互式查询中有个常用的概念是“算子”,在英文中被成为“Operation”,其实就是一个处理单元,往往是指一个函数,在使用算子时往往会有输入和输出,算子则完成相应数据的转化,比如:Group、Sort等都是算子。

Flink状态一致性

状态一致性分类: https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/connectors/guarantees.html
• AT-MOST-ONCE(最多一次):当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。At-most-once 语义的含义是最多处理一次事件。
• AT-LEAST-ONCE(至少一次):在大多数的真实应用场景,我们希望不丢失事件。这种类型的保障称为 at- least-once,意思是所有的事件都得到了处理,而一些事件还可能被处理多次。
• EXACTLY-ONCE(精确一次):恰好处理一次是最严格的保证,也是最难实现的。恰好处理一次语义不仅仅 意味着没有事件丢失,还意味着针对每一个数据,内部状态仅仅更新一次

EXACTLY-ONCE(精确一次):通过checkpoint(快照)机制来保证

Flink安装

0、要在linux的环境下
1、安装java
2、在官网下载flink安装包https://flink.apache.org/zh/downloads.html#apache-flink-1113
3、下载flink后进行解压缩(我下载的是flink-1.11.3版本的)

tar zxf flink-1.11.1-bin-hadoop26-scala_2.11.tgz

4、配置环境变量
通过vim /etc/profile进入到配置文件中开始配置环境变量
在这里插入图片描述

在这里插入图片描述

5、然后进入到flink-1.11.3/bin文件夹中

cd flik-1.11.3
cd bin

然后查看bin目录下的内容
在这里插入图片描述
运行start-cluster.sh文件
在这里插入图片描述
提示权限不够输入sudo su命令然后输入管理员密码开启系统的管理员权限
然后再一次执行./start-cluster.sh命令

在这里插入图片描述
执行成功。

运行Flink自带的示例wordcount

1、通过浏览器进步flink的UI界面网址是localhost:8081
在这里插入图片描述

2、查看flink自带的示例有哪些
(1)进入到flink-1.11.3文件下的example文件在进入streaming文件查看flink提供的示例
在这里插入图片描述
(2)我们可以看到里面包含很多示例,我们要运行的是SocketWindowWordCount.jar
3、此时重新打开一个终端输入命令nc -l 9000。目的是启动一个监听端口,用于模拟我们的数据流入口。
4、然后进入到flink.1.11.3的文件下,运行如下命令:
在这里插入图片描述
5、进入localhost:8081\进行查看

在这里插入图片描述
显示有一个任务正在运行
6、进入到flink-1.11.3的log文件中并查看其中的日志文件
在这里插入图片描述
运行如下命令查看日志文件中的结果
在这里插入图片描述
上图日志中包含之前的统计的记过(示例的统计逻辑为每行中每个单词的频率)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值