17--Flink 集群搭建
2023-09-02 10:11:22 7 举报
登录查看完整内容
为你推荐
查看更多
Flink 集群搭建
作者其他创作
大纲/内容
负责资源的分配和管理 一个集群只有一个资源:任务槽只能分发可用的任务槽 不能启动新的任务槽 不够的时候只能向平台发起会话 请求启动槽还负责停掉空闲 TaskManager 释放计算资源
1.先启动Yarn开闭资源给flink-n:容器的个数-jm:指明jobmanager进程的内存大小-tm 指明每个taskmanager的进程内存大小
Contanier / 动态资源 分配回收
应用模式 独享空间模式->集群模式与分离模式的区别:用户程序的main方法在集群中运行减轻服务器的压力其它的一样 一个Job创建一个集群使用场景:生产环境 大作业 运行时间长
搭建环境
Dispatcher
命令提交
普通包 直接Maven package
任务调度
搭建集群的方式
ResourceManager
关闭任务
加依赖的包Project Structure-->Artifacts-->添加 JAR-->From modules With Dependencies -->设置主类-->Apply-->build-->Build Artifacts -->out里面
Application Mode
Job Master
Yarn模式
每个TM包含一定数量的槽 一个槽对应一个并行度启动后 TM会向资源管理注册 Slot 然后交给JM调用TM可以缓存数据 可以跟其他运行同一应用的 TaskManager交换数据
Session模式
Job Manager作业管理器
主要协调分布式运行 调度任务协调checkpoint,协调失败任务的恢复
Per-Job Mode
Task
分离模式 独享空间模式-->客户端模式 用户类的main方法在client运行-->在哪个节点提交JobMaster 就在哪个节点运行每提交一个作业会根据自身的情况,都会单独向 yarn 申请资源 直至任务完成任务的失败完全不影响其它任务的提交和运行优点:作业运行完成资源立刻会被释放缺点:每次执行都需要申请资源 消耗时间 影响执行效率使用场景:作业较少 适合大作业 运行时间长的
客户端并不是处理系统的一部分它只负责作业的提交
系统架构
相当于YARN中的ApplicationMaster组件 负责处理单独的任务JM与Job是一对一关系 多个Job可以运行在一个集群中作业提交时 JM会接收执行的应用( Jar包 数据流图(dataflow graph) 作业图(JobGraph) )JM会把作业图转换成物理层面数据流图 包含了所有的并发执行任务JM向RM申请资源 然后将执行图分发到TaskManager上
三种模式
负责执行任务处理数据
共享空间模式整个flink首先在Yarn上整个声明一份空间 Container 所有的Flink任务都在这个空间执行优点:不需要每次递交作业申请资源,使用已有资源缺点:作业执行完后 资源不会释放 一直有块空间使用场景:小作业比较多 适合频繁的提交作业
StandAlone 集群 多态服务器【资源管理+任务调度】这些都有Flink完成 本身自带这些软件
TaskManager
页面提交
2.提交任务3.停止任务:yarn application -kill application_id
flink run -c 主类 -p 2/root/Jar包-c:主类路径-C:向每个用户的代码添加URL 通过URLClassLoader加载 指定路径-d:在后台运行-p:指定Job的并行度-q:禁止logging输出作为标准输出-s:基于savepoint保存下来的路径,进行恢复-sae:如果是前台的方式提交,当客户端中断,集群执行的job任务也会shutdown
Local-->idea会产生临时的环境 用于测试
对比
运行原理1.启动新的Flink YARN Client会话 客户端会先检查请求的容器和资源是否可用 然后上传包含了 Flink 配置文件和 jar包到 HDFS2.客户端的请求一个container资源去启动 ApplicationMaster 进程3.ResourceManager选一台NodeManager机器启动AM注意点:客户端已经将配置文件和jar包作为容器的资源注册了 NodeManager会负责准备容器做一些初始化工作JobManager 和 AM 运行在同一个容器中。一旦它们成功地启动了,AM 知道JobManager 的地址(它自己)它会为 TaskManager 生成一个新的 Flink 配置文件(这样它们才能连上JobManager)该文件也同样会上传到 HDFSAM 容器同时提供了 Flink 的 Web 界面服务4.AM 开始为 Flink 的 TaskManager 分配容器(container),在对应的nodemanager上面启动taskmanager5.初始化工作,从 HDFS 下载 jar 文件和修改过的配置文件。一旦这些步骤完成了,Flink 就安装完成并准备接受任务了
将Jar包上传到 Web页面
打Jar包方式
Flink & Yarn
ApplicationMaster
资源管理
作业提交方式
-m:后面跟的是yarn-cluster 不需要指明地址-yn: 指明taskmanager个数
Task Manager任务管理器
资源利用弹性不够(资源总量是定死的;job 退出后也不能立刻回收资源)资源隔离度不够(所有 job 共享集群的资源)所有 job 共用一个 jobmanager,负载过大
负责提供要给Rest接口 用来提交应用-->不是必须的 可以忽略每一个任务就会增加一个JM组件 Dsipatcher也会启动一个WebUI 用来监控执行的信息
0 条评论
回复 删除
下一页