Flink 基础学习
视频:https://www.bilibili.com/video/BV1qy4y1q728?p=14&spm_id_from=333.33.header_right.history_list.click
Flink是什么?为什么要有这个东西?它和Spark-streaming 的区别?
Flink 架构
应用场景:广告主投放广告看效果,电商推荐系统推荐热门商品和根据用户画像及时推荐。
Standalone 模式下部署
客户端提交Job流程:分两种,一个是web ui 提交,一个是客户端提交
web UI 提交:
启动Flink后,可以在Web UI的Submit New Job
提交jar包(在IDEA先编译,再package则生成jar包),然后指定Job参数。
-
Entry Class
程序的入口,指定入口类(类的全限制名)
-
Program Arguments
程序启动参数,例如
--host localhost --port 7777
-
Parallelism
设置Job并行度。
Ps:并行度优先级(从上到下优先级递减)
- 代码中算子
setParallelism()
ExecutionEnvironment env.setMaxParallelism()
- 提交job时候手动在UI界面设置的Job并行度
- 集群conf配置文件中的
parallelism.default
ps:socket等特殊的IO操作,本身不能并行处理,并行度只能是1
- 代码中算子
-
Savepoint Path
savepoint是通过checkpoint机制为streaming job创建的一致性快照,比如数据源offset,状态等。
(savepoint可以理解为手动备份,而checkpoint为自动备份)
ps:提交job要注意分配的slot总数是否足够使用,如果slot总数不够,那么job执行失败。(资源不够调度)
这里提交前面demo项目的StreamWordCount,在本地socket即nc -lk 7777
中输入字符串,在taskmanagers-->stdout中查看结果
输入:
hello world, and thank you!
输出:
可以看出来输出的顺序并不是和输入的字符串严格相同的,因为是多个线程并行处理的。
1> (world,,1)
2> (and,1)
1> (thank,1)
2> (you!,1)
2> (hello,1)
3.1.2 命令行提交job
-
查看已提交的所有job
$ bin/flink list Waiting for response... ------------------ Running/Restarting Jobs ------------------- 30.01.2021 17:09:45 : 30d9dda946a170484d55e41358973942 : Flink Streaming Job (RUNNING) -------------------------------------------------------------- No scheduled jobs.
-
提交job
-c
指定入口类-p
指定job的并行度
bin/flink run -c <入口类> -p <并行度> <jar包路径> <启动参数>
$ bin/flink run -c wc.StreamWordCount -p 3 /tmp/Flink_Tutorial-1.0-SNAPSHOT.jar --host localhost --port 7777 Job has been submitted with JobID 33a5d1f00688a362837830f0b85fd75e
-
取消job
bin/flink cancel <Job的ID>
$ bin/flink cancel 30d9dda946a170484d55e41358973942 Cancelling job 30d9dda946a170484d55e41358973942. Cancelled job 30d9dda946a170484d55e41358973942.
注:Total Task Slots只要不小于Job中Parallelism最大值即可。
eg:这里我配置文件设置taskmanager.numberOfTaskSlots: 4
,实际Job运行时总Tasks显示9,但是里面具体4个任务步骤分别需求(1,3,3,2)数量的Tasks,4>3,满足最大的Parallelism即可运行成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)