返回 登录
0

浅谈大数据资源管理层中的资源碎片

**内容概览
资源管理层的进化
相关概念介绍
资源碎片的产生和影响
资源碎片的管理和再利用
**
资源管理层的进化
随着大数据相关技术的发展,相关模块的抽象和功能也更加具有专注性。尤其是 Hadoop 一代到二代 Yarn 的进化,以及 Mesos 的出现,我们可以看出资源管理层在大数据框架中的重要性。随着多租户的需求,资源管理层面也面临很多技术挑战,归根结底也就是如何最大化的利用集群资源以及数据和资源的隔离。
接触过 Hadoop 一代的读者,应该了解在一代 Hadoop 中,资源管理层并没有被单独的抽象出来,而是和任务管理层一起处理。相信这种架构的的缺点,很多读者已经有所了解,因而也导致了 Yarn 的产生。对于进化后的 Hadoop 而言,Yarn 将资源管理层和任务管理层分离开来,首先易于管理和理解,降低了层级之间的耦合性。这样的架构很易于向前发展,例如对多种计算框架的支持。接着,我们再来理解下计算框架的进化。首先,在大数据的概念之前,我们听到的更多的是高性能计算或并行计算。那时候的计算框架,基本都是计算密集型任务。也就是说一般情况下,我们只用关心 CPU 的利用率。而随着大数据框架的发展,数据密集型的任务也越来越多,尤其是以 Spark 为代表的内存计算框架的出现。而之前的资源管理层默认都是以 CPU 为主的一维调度,这样就显得不合理,如今耳熟能详的多维资源调度就是在这样的背景下产生的。目前最常见也就是 CPU 加内存的调度策略。多维度调度的策略和算法并不是本文要探讨的,这里也就不再多说。另外关于本文将要描述的想法和方案,目前并没有落地到某一个产品或开源框架,可以认为本文只是一种可行性方案的讨论,我也并没有实现的代码验证该方案的效率。希望读者可以通过以此开始了解其他类似的方案。
相关概念介绍
为了更好的阐述本文将要描述的方法和观点,我们需要熟悉一些抽象化的概念,有的可以跟开源的某些模块联系起来理解,有些则可能需要读者自己琢磨了。
Application:一般指进行一种职能的应用框架,我们也简称为应用。
Resource:这里指的就是用于运行应用所需的计算资源,例如 CPU、内存、磁盘等。
Resource Group:将多个 Resource 资源组成的一个群组,方便管理和应用。
Multi-dimension Resource Scheduler:一种同时管理多种类型的计算资源(如 CPU 和内存)的调度策略。
……
详细内容点击浅谈大数据资源管理层中的资源碎片

评论