flink

一 架构设计

1 架构设计图

二运行模式

1 本地运行模式 -local :一个机器启动一个进程的多线程来模拟分布式计算,

2 standalone 模式-独立Flink集群:各个环节Flink自己搞定,并没有yarn 、mesos统一资源调度 平台

3 集群运行模式:经常是指 flink on yarn 集群模式,yarn也可换为mesos,Kubernetes等

集群运行模式共3种:

1)Flink Session 集群(会话模式)

2) Flink Job 集群(per-job模式)

3) Flink Application 集群(应⽤模式

模式总结:

应用场景:

本地布署模式:demo、代码测试场景。 Session模式:集群资源充分、频繁任务提交、⼩作业居 多、实时性要求⾼的场景。(该模式较少) Per-Job模式:作业少、⼤作业、实时性要求低的场 景。 Application模式:实时性要求不太⾼、安全性有⼀定要 求均可以使⽤,普遍适⽤性最强。

⽣产环境使⽤说明:

⼀般建议⽤per-job或是application模式,提供了更好的 资源隔离性和安全性。

3运行流程

 

Client 客户端不是运⾏时和程序执⾏的⼀部分,⽽是⽤ 于准备数据流并将其发送给 JobManager。 提交任务完成之后,Client可以断开连接(分离模式), 或保持连接来接收进程报告(附加模式)。 Client可以作为触发执⾏ Java/Scala 程序的⼀部分运 ⾏,也可以在命令⾏进程./bin/flink run ...中运⾏。 可以通过多种⽅式启动 JobManager 和 TaskManager: 直接在机器上作为standalone 集群启动、在容器中启 动、或者通过YARN或Mesos等资源框架管理并启动。

12 TaskManager 连接到 JobManagers,宣布⾃⼰可⽤, 并被分配⼯作。 actor system 各个⻆⾊组件互相通信的消息传递系统中间件。 actor是⼀种并发编程模型,与另⼀种模型共享内存完 全相反,Actor模型share nothing,即没有任何共 享。 所有的线程(或进程)通过消息传递的⽅式进⾏合作(通 信),这些线程(或进程)称为Actor。 以其简单、⾼效著称 缺点 唯⼀的缺点是不能实现真正意义上的并⾏, ⽽是通 过并发实现的并⾏效果,会存在⼀定的不确定性。 纯消息通信,实时性和粒度控制上会略弱于共享内 存的⽅式。 核⼼组成⻆⾊剖析 JobManager JobManager 具有许多与协调 Flink 应⽤程序的分布 式执⾏有关的职责:它决定何时调度下⼀个 task(或 ⼀组 task)、对完成的 task 或执⾏失败做出反应、 协调 checkpoint、并且协调从失败中恢复等等。这个 进程由三个不同的组件组成: ResourceManager

○ 13 ResourceManager 负责 Flink 集群中的资源提 供、回收、分配 - 它管理 task slots,这是 Flink 集群中资源调度的最⼩单位。Flink 为不同 的环境和资源提供者(例如 YARN、Mesos、 Kubernetes 和 standalone 部署)实现了对应 的 ResourceManager。在 standalone 设置 中,ResourceManager 只能分配可⽤ TaskManager 的 slots,⽽不能⾃⾏启动新的 TaskManager。 Dispatcher Dispatcher 提供了⼀个 REST 接⼝,⽤来提交 Flink 应⽤程序执⾏,并为每个提交的作业启动 ⼀个新的 JobMaster。它还运⾏ Flink WebUI ⽤ 来提供作业执⾏信息。 JobMaster JobMaster 负责管理单个JobGraph的执⾏。 Flink 集群中可以同时运⾏多个作业,每个作业 都有⾃⼰的 JobMaster。 始终⾄少有⼀个 JobManager。⾼可⽤(HA) 设置中可能有多个 JobManager,其中⼀个始终 是 leader,其他的则是 standby。 TaskManager TaskManager(也称为 worker)执⾏作业流的

14 task,并且缓存和交换数据流。 必须始终⾄少有⼀个 TaskManager。在 TaskManager 中资源调度的最⼩单位是 task slot。 TaskManager 中 task slot 的数量表示并发处理 task 的数量。请注意⼀个 task slot 中可以执⾏多个算⼦。

15yarm 模式提交任务的工作流程

 16  运行 需要导出环境变量,可以在用户的环境变量里导出 

  a) vi ~/.bashrc

  b)添加

  • export HADOOP_CONF_DIR=/usr/hdp/3.1.0.0-78/hadoop/conf/
    • export HADOOP_CLASSPATH=`hadoop classpath`

   c 执行一下 source ~/.bashrc

4 运行方式

 1本地运行

yarn jar jar包 类 参数

2 集群运行  

application: 

                        $FLINK_HOME/bin/flink run-application -t yarn-application -c 类 jar包 参数

( -t 运行模式,-c 执行的主类),在集群查看

per-job 方式:

                                $FLINK_HOME/bin/flink run -t yarn-per-job -c 类 jar包 参数

                        main方法运行在客户端,可以直接在客户端查看到执行日志

session方式:

        预先启动好session 

                        $FLINK_HOME/bin/yarn-session.sh

                        不分离的,需要关闭,ctrl+c直接退出

        $FLINK_HOME/bin/yarn-session.sh -d

       分离式的启动,启动完之后需要上集群上才能看到对应的日志和效果

        

 启动程序

         

  • $FLINK_HOME/bin/flink run -t yarn-session -c 类 - Dyarn.application.id=application_1627998129686_0475 jar包 参数
    • $FLINK_HOME/bin/flink run jar包 参数随机找一个session
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值