1. 讲⼀下Flink的运⾏架构


当 Flink 集群启动后,⾸先会启动⼀个 JobManger 和⼀个或多个的 TaskManager。由 Client 提交任务给

1、JobManager,JobManager 再调度任务到各个 TaskManager 去执⾏,然后 TaskManager 将⼼跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进⾏数据的传输。上述三者均为独⽴的 JVM 进程。

1.1、Client 为提交 Job 的客户端,可以是运⾏在任何机器上(与 JobManager 环境连通即可)。提交 Job 后,Client 可以结束进程(Streaming的任务),也可以不结束并等待结果返回。

1.2 、JobManager 主要负责调度 Job 并协调 Task 做 checkpoint,职责上很像 Storm 的 Nimbus。从 Client 处接收到 Job 和 JAR 包等资源后,会⽣成优化后的执⾏计划,并以 Task 的单元调度到各个 TaskManager 去执⾏。

1.3、TaskManager 在启动的时候就设置好了槽位数(Slot),每个 slot 能启动⼀个 Task,Task 为线程。从JobManager 处接收需要部署的 Task,部署启动后,与⾃⼰的上游建⽴ Netty 连接,接收数据并处理。

2. 讲⼀下Flink的作业执⾏流程


以yarn模式Per-job⽅式为例概述作业提交执⾏流程

  1. 当执⾏executor() 之后,会⾸先在本地client 中将代码转化为可以提交的 JobGraph
    如果提交为Per-Job模式,则⾸先需要启动AM, client会⾸先向资源系统申请资源, 在yarn下即为申请container
    开启AM, 如果是Session模式的话则不需要这个步骤
  2. Yarn分配资源, 开启AM
  3. Client将Job提交给Dispatcher
  4. Dispatcher 会开启⼀个新的 JobManager线程
  5. JM 向Flink ⾃⼰的 Resourcemanager申请slot资源来执⾏任务
  6. RM 向 Yarn申请资源来启动 TaskManger (Session模式跳过此步)
  7. Yarn 分配 Container 来启动 taskManger (Session模式跳过此步)
  8. Flink 的 RM 向 TM 申请 slot资源来启动 task
  9. TM 将待分配的 slot 提供给 JM
  10. JM 提交 task, TM 会启动新的线程来执⾏任务,开始启动后就可以通过 shuffle模块进⾏ task之间的数据交换

3. Flink的部署模式都有哪些

flink可以以多种⽅式部署,包括standlone模式/yarn/Mesos/Kubernetes/Docker/AWS/Google Compute
Engine/MAPR等

⼀般公司中主要采⽤ on yarn模式

4. 讲⼀下Flink on yarn的部署

Flink作业提交有两种类型:

5. Flink 的 state 是存储在哪⾥的

6. Flink 的 window 分类



7. Flink 的 window 实现机制



8. Flink具体是如何实现exactly once 语义



9. flink是如何实现反压的


10. flink中的时间概念 , eventTime 和 processTime的区别


Flink 常见面试题相关推荐

  1. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  2. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  3. Spring常见面试题及答案汇总1000道(春招+秋招+社招)

    Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...

  4. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)

    Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...

  5. MySQL常见面试题及答案汇总1000道(春招+秋招+社招)

    MySQL面试题以及答案整理[最新版]MySQL高级面试题大全(2021版),发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面 ...

  6. Jvm常见面试题及答案汇总1000道(春招+秋招+社招)

    Jvm面试题以及答案整理[最新版]Jvm高级面试题大全(2021版),发现网上很多Jvm面试题都没有答案,所以花了很长时间搜集,本套Jvm面试题大全,汇总了大量经典的Jvm程序员面试题以及答案,包含J ...

  7. Dubbo常见面试题及答案汇总1000道(春招+秋招+社招)

    Dubbo面试题以及答案整理[最新版]Dubbo高级面试题大全(2021版),发现网上很多Dubbo面试题都没有答案,所以花了很长时间搜集,本套Dubbo面试题大全,汇总了大量经典的Dubbo程序员面 ...

  8. Java常见面试题,2021年及答案汇总

    Java常见面试题,2021年及答案汇总 其实,博主还整理了,更多大厂面试题,直接下载吧 下载链接:高清172份,累计 7701 页大厂面试题 PDF 1.什么是ThreadPoolExecutor? ...

  9. mybatis基础综合/常见面试题

    概念/作用: 持久层框架,通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句.最后mybatis ...

最新文章

  1. UML2.0工具比較
  2. 当用户将鼠标悬停在列表项上时,使光标成为手
  3. iptables连接跟踪ip_conntrack
  4. 万字长文 | 一文带你读懂账号体系
  5. java中商业数据计算时用到的类BigDecimal和DecimalFormat
  6. 文件的创建与读取 文件的数据添加
  7. 伯努利数学习笔记的说...
  8. javascript/jquery高度宽度详情解说分析
  9. Linux 解决文件删除,但并没有改变磁盘可用性
  10. 【数据工具】ArcGIS批量出图工具箱
  11. 通达OA2017恢复数据库Access denied for user 'root'@'localhost' (using password: YES)报错的解决办法
  12. 配置环境变量时Path单行显示问题
  13. 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)
  14. Word2019 插入脚注问题
  15. 天载杠杆炒股A股三大指数团体高开
  16. 3.NLP中文分词技术
  17. 〈四〉ElasticSearch的认识:基础原理的补充
  18. 电子加速器原理与应用
  19. Unity 简单TCP通信实现
  20. python永久删除文件_Python彻底删除文件夹及其子文件方式

热门文章

  1. Java集合框架——List接口
  2. pig和piglet有什么区别?
  3. 2020新版软件自动化测试自学全套教程——中级程序员学习路线
  4. 互联网晚报 | 1月8日 星期六 | 小米商城已支持数字人民币支付;微信视频号将上线付费直播间;苹果CEO去年薪酬近1亿美元...
  5. Canvas绘制网格
  6. 【智能车算法】电磁杆差比和差调参经验
  7. 如何在word中制作线宽不同的三线表
  8. halcon裁剪图像_【Halcon】Halcon学习之七:改变图像的现实方式和大小
  9. 华为模拟器dhcp中继
  10. 搭建内网音频直播源基于天津相声广播音频