前言:
目前你们对“资源调度包括”都比较注重,看官们都需要知道一些“资源调度包括”的相关知识。那么小编同时在网上收集了一些关于“资源调度包括””的相关内容,希望我们能喜欢,看官们快快来学习一下吧!有必要把集群资源管理调度搞搞清楚。容器也好,虚机也好,怎样根据底层可使用的物理资源的多少来把它们分配给容器或虚机使用?这就是调度或动态调度。OpenStack 做不好这事,它不能在虚机和资源之间进行调度(VMware的VSphere可以,它有个DRS功能)。Mesos可以,它可以在计算框架和资源之间进行调度;如果计算框架自身具备面向框架内任务的细颗粒度资源调度,而这些任务又是用容器来承载的,那么我们也可以认为Mesos可以在容器与资源之间进行调度(两级调度)。
这种调度的目的就是要提高设备资源的使用率。譬如当你的大数据平台已不再是唯一的Hadoop集群,其它的数据处理框架如Spark、Storm、Kafka等也需要组成集群要你来运行时,你肯定会考虑到资源利用率,运维成本,数据共享等因素。企业一般都希望将所有这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样,便诞生了资源统一管理与调度平台,其中典型代表就是Mesos和Hadoop生态体系内的Yarn。
首先,资源统一管理和调度平台应该提供一个全局跨域的资源管理器。所有接入的框架要先向该资源管理器申请资源,申请成功之后,再由框架自身的调度器决定将分配到的资源交由哪个任务使用;也就是说,整个大的系统是个双层调度器,第一层是统一管理和调度平台,另一层是框架自身的调度器。
弄清了这一点也就弄清了Mesos和Yarn的各自定位。Mesos是第一层的资源统一管理与调度,它所覆盖的框架集群有大数据类的(Yarn所能支撑的)和非大数据类的(Yarn不能支撑的)。第二层是计算框架自带的调度器如Yarn(或Kubernetes等),对分配到的资源进行再次分配;也就是说,Mesos将大部分调度任务授权给了计算框架。总结来说,Mesos首先完成粗粒度的资源分配,即:将资源分配给框架,然后由框架进行细粒度的资源分配;而Yarn进行细粒度的分配,即:将资源分配给某个任务。
Yarn和Mesos是否单独执行资源调度还没有到下定论的时候,双方也都还在继续演进当中,以支持越来越多的框架。好在Mesos不仅仅是做大数据分布式计算的框架,所以Mesos往往被称为数据中心操作系统,DCOS,是软件定义数据中心的利器。为了让两者能够更好地整合在一起,发挥各自的作用,业界试着用一个叫Myriad的组件来做Y2M或M2Y。不过Myriad的稳定性还有待验证,目前还不能用它来做生产组网。在过渡时期,我们可能不得不考虑由Mesos和Yarn分别组网的情况。
至此,我们可以大致勾勒出来新一代云平台的边际图:
- 底层是各类硬件资源,以X86物理机为主,混搭着虚机、小型机、SAN存储、SDS存储、SDN网络等。
- 这些资源统一由OpenStack(或其它云管理软件)云平台来负责管理,管理内容包括自动化部署(OS、虚拟软件等)、可视化监控、IaaS多租户管理、资源组件目录、用户门户等。
- 在这些资源之上我们可以部署Mesos,用它来汇聚底层资源(CPU、内存、存储)并根据需求动态提供给上层的框架(Kubernetes、Hadoop、Spark、Storm、Kafka、MySQL、Redis等)。
- 这些框架如带有自身的资源调度器,可将分配到的资源二次细分到各自的任务或容器中。
标签: #资源调度包括