背景知识:
很多互联网公司会有各种类型的工作任务,比如对外提供各种服务,内部的挖掘与数据管理系统。
即使内部数据系统也可能需要多种不同类型的计算系统:适应实时计算的挖掘系统。适合交互查询的系统
或者典型的批处理任务,面对多种各具特性的计算系统与框架,比较传统的资源管理方式采用的是静态资源划分方法。
静态划分优点:简单,固定的硬件资源给固定的计算框架使用,各个框架各行其是,互补干扰。
缺点:整体资源利用率不高,经常出现集群计算系统资源不足
所以需要动态的集群资源管理与调度,这方面的研究呢处于摸索期,发展趋势很不错哟!
话说掌握资源并分配资源的感觉很不错的,现实生活中我们很难实现的东东,可以在计算机当中去实现哦。
对比一下动态和静态:
第一:动态会根据任务即时需要分配资源,不会出现资源闲置且不可用,也不会出现任务忙且不可得资源的尴尬局面。总之
增加资源利用率,降低硬件成本。
第二:增加数据共享能力,共用的资源存储一份就行啦,
第三:说白了就是支持多类型计算框架和多版本计算框架,使用资源管理与调度平台可以实现两者平滑切换,给运营带来便利。
资源管理抽象模型:
资源管理与调度系统:YARN、Mesos、Corona、Quincy,从上述系统抽象两个模型:1,资源管理与调度的概念模型。2,通用架构
目的:通过 一定策略把资源分配给用户提交到系统里的各种任务。
资源:内存、cpu、网络资源、磁盘I/O
概念模型聚焦三要素:资源组织模型、调度策略、任务组织模型
1,资源组织模型:组织起来方便分配,像以前吃大锅饭一样,有一些组织的方式如“all resource->group->pool”三级队列,或者平级多队列或者但队列了等等吧。
2,调度:熟知的FIFO、公平调度、能力调度、延迟调度等等吧,说白了就是按照什么方式分配资源。以前大跃进期间是按“分儿”分配,劳动多所得“分儿”就多。
3,任务组织:job分配呀比如全局队列、机架对垒、节点队列等。说白了就是以前大跃进期间如何把活儿给组织起来,放牛的,耕地的,播种的,拔草的等等类似吧
通用架构:
解释一下啊:1,每台机器都有节点管理器,负责收集它所在机器的资源使用情况,分配的任务放到不同容器执行,彼此隔离开,避免job彼此干扰。
相当于大跃进期间的组长。每一个胡同一个组长,由他负责给村长汇报任务,汗!在这里它要给资源收集器汇报任务。这个收集器在把
相关的信息反应给资源池,资源池列出目前可用的资源
2,通用调度器构成:资源收集起、资源调度策略,资源池,工作队列
3,调度策略:FIFO、公平调度、能力调度等,这家伙相当于大跃进期间村委书记,你家的牛羊粮食咋分,如何分,他说了算,汗!
在这里系统应用者可根据具体情况设定符合业务状况的调度策略,当用户新提交作业时,其进入工作队列,等着分配使其可启动的资源。
总结:资源管理与调度说白了就是资源管理与分配,在现实生活中就是按需分配,把资源尽可能的分配到需要的job手中,
无论是人还是计算机,采用何种分配策略,决定了你这个系统的性能问题,生活中我们常说“不患寡而患不均”,在计算机中资源管理与调度是根据具体
场景而设定的,其实终极目的都是为了使资源分配的更加合理!依此为导向来决定分配策略会更加合理。