FLIP-6 Flink runtime设计文档摘要(一)

这篇主要是组件的职责和功能

  • 每个JobManager负责一个Job,在提交JobGraph时创建,在job完成后销毁
  • JobManager同样可以通过savepoint创建

ResourceManager

根据不同的集群调度框架提供不同实现(YARN,Mesos)

主要任务

  • 处理资源请求(申请新的TaskManager):在请求到来的时候可以启动新的container或者直接分配给job
  • 异常检测:如果JobManager或者TaskManager挂了,需要做相应处理,通知相关组件
  • 缓存TaskManager,以便重用。在TaskManager(container)一段时间未使用时自动释放

根据不同实现方式可以选择让ResourceManager感知到 task slot。(增加一个map变量即可实现)

  • ResourceManager 是在多个Job运行期间一直存活的

  • RecourceManager如果挂了不能影响当前执行的job,运行的job可以继续使用已经分配的资源执行,但是在RM挂了期间不能申请新的资源。

  • RM的不应该依靠保存运行时状态来实现容错

    • RM可以通过询问JM,TM来重新获取信息。(RM自身重新获取container,JM,TM的重新注册)

    • 特殊情况下可能仍然需要保存一些与cluster-manager相关的状态。

  • JM向RM注册自己,这样便可以获得TM的信息。如果JM被分配的资源所在的TM挂了,会收到相关信息。

如果slot足够的话2,3步骤省略


design-runtime-simple.png

TaskManager

同时和RM,JM进行信息交互。同时需要心跳信息来检测异常

与RM的交互
  • TM启动的时候会在RM注册自己。RM断开连接时会重连,并重新注册自己,上报自身的slot资源信息
  • 每次心跳时,TM也会发送自己的slot资源的可用状态。而且TM和JM直接链接并发送资源信息,这样RM就会及时的感知到资源的变化。
  • TM这边看到的资源使用状态是最正确的信息(自己的哪个slot被分配给了哪个JM)。通过这个信息RM可以得到资源的使用状态
  • RM会告诉TM,TM的哪个slot被分配给了哪个JM。之后TM会把slot分配给JM。如果分配失败会告诉RM对应的slot实际是不可用的(注:RM那边的信息可能是错误的,所以才会发送这个信息给TM,TM这边的信息才是资源使用的真是情况,参考上一条)
  • RM会向TM发送shutdown信息
与JM的交互
  • TM会根据JM的要求来分配slot给JM,在JM的Job完成之前这个slot都是属于JM的,完成后JM会释放slot
  • TM会保存自己的slot分配信息(分配给了哪个JM),JM失连则会触发TM自身的master挂了的恢复逻辑
  • JM可以部署任务到JM被分配的slot中
  • JM失连,TM会尝试分配给slot给JM(如果JM有HA,则新的JM还是负责这个Job)。如果一段时间之内都注册失败,则所有分配给这个JM的slot都变为可分配状态。当之前Job的JM恢复后,他需要重新从RM申请slot

JM的slot pool

JM有一个资源池记录TM提供的slot资源

JM的调度器从slot pool中获取slot来调度任务,这样即使RM挂了JM也可以不失去分配的资源

InstanceManager是当前slot pool的一个实现

SlotPool在无法满足[资源申请]的时候会尝试从RM中获取资源,如果RM挂了或者RM不能提供资源或者请求超时,则[资源申请]失败

SlotPool可以返还资源给RM,如果应用已经使用了最大资源后slotpool还有剩余

Dispatcher

Dispatcher 接受client的job提交,并在cluster manager上创建启动job

[图片上传失败...(image-fc02df-1552733550212)]这个设计是因为

  • 有的cluster manager需要一个集中式(触发 job 启动)和(监控job)的模块
  • 可以作为一个常驻实例来等待任务提交

容错

核心容错机制是任务重启,并从checkpoint中恢复状态


YARN

yarn-without-dispatcher.png

with dispatcher

yarn-with-dispatcher.png

容错方面:

RM和JM运行在AM进程中,异常检测和进程重启由YARN执行

JobGraph和库,会保存在AM的工作目录中,YARN会将他们保存在私有的HDFS目录中

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容