IBM Platform Symphony 高效的大数据处理引擎(3)
 
- UID
- 1066743
|

IBM Platform Symphony 高效的大数据处理引擎(3)
Platform Symphony 应用间的资源管理和和共享Platform Symphony 通过 Consumer 来管理应用之间的资源。我们可以简单理解 Consumer 就相当于每个应用的银行账户,申请到的资源就会存放在 Consumer,然后与其关联的应用就可以使用该 Consumer 获得的资源。下图是 Consumer 和 App 以及 Resource Group 的关系。
图 10. Consumer、App、RG 的关系 从图中我们可以看到 App 会以 Consumer 为账户在 Resource Group 中取得资源,一个 Consumer 可以配置从一个或多个 RG 中申请资源。为了最大化的利用资源,Symphony 允许 Consumer 之间的资源共享。在 Symphony 的集群中,会有 Resource Distribution Plan 的定义,也就是全局资源分配的策略。它会包含三种资源共享的模型、分别是 Siloed 模型、Directed Shared 模型以及 Brokered share 模型(也可以称为 utility 模型)如下图。
图 11. Symphony 资源共享模型 简单来说,用户可以对一个(或多个)应用配置独占一部分资源,将剩下的分配给其他应用。在独占的资源中,又可以配置借入和借出规则。在应用与应用之间(也就是 Consumer 之间)也可以配置一个比例,这样应用之间可以按比例获取集群中国的资源。以上只是很简单的概括描述,资源如何分配是 Symphony 的一个核心的内容,感兴趣的读者可以在 IBM Knowledge Center 中获得更多内容。
Platform Symphony 与 Yarn 的对比前面介绍了 Symphony 中 EGO 和 SOAM 里的一些模块和概念,可能有的人觉得和大数据并没有什么关系。其实是很多人已经先入为主了,提到大数据可能想到的更多的是 Hadoop MapReduce 和 Spark 之类,而这些都只是计算框架而已。Symphony 的用户完全可以根据自己的业务计算逻辑,实现自己的 Symphony 应用。拿 MapReduce 而言,它也只是 Symphony 的一个应用。这也间接说明了 Symphony 的另一个优势,多租户的概念。Symphony 中可以同时运行多种类型的应用。用过 Yarn 的读者,可能觉得 Symphony 有些类似于 Yarn。这里就将 Symphony 的各个模块与 YARN 做个简单的对照。下图是 Yarn 的架构设计,我们对比下 Yarn 与 Symphony 的相似之处。
图 12. Yarn 的架构设计 Client 都是用来提交任务的,在 Yarn 中 RM 会申请资源启动 App Master。这一步类似于 SOAM 中 SD 申请资源启动(或找到)SSM。Yarn 中 App Master 会向 RM 申请资源启动 container 运行 MR 任务,并收集任务状态。这里类似于 SSM 向 EGO 申请资源启动 SIM 和 SI,并发送任务和收集任务结果的过程。SSM 和 App Master 一样,是管理和调度任务的模块,在一个集群中可以存在多个(多种不同类型的应用)。很多人都很赞叹 Yarn 架构的前沿性,尤其与 Hadoop 一代比较,Yarn 将资源管理层单独抽象出来,这样使得 Hadoop 的架构更加清晰。而 Symphony 十几年前就已经这样设计,可见 Symphony 已经领先开源很多年。
当然 Symphony 与 Yarn 也有一些差异,例如默认情况下(Yarn 可以配置),Yarn 的 App Master 是启动在 Yarn 的 Container 中,与真正的计算实例的 Container 并无特殊对待。也就是说启动 App Master 的机器,有随机性。而 Symphony 一般只能启动 SSM 在 Symphony 的管理节点。一般情况下,管理节点的性能会远高于计算节点的,而 SSM 等管理进程对性能的消耗一般也会比较大,所以在管理节点启动 SSM 这样的重量级进程是有技术背景的。再例如 Yarn 没有 Resource Group 的概念,如果需要将某些特殊的任务调度到某一群特定机器时,Yarn 显得有些沉重,因为 Yarn 目前只能通过标签调度(Tag Policy)去做。Symphony 可能只需要设定几个 Resource Group,并设计不同优先级即可(Symphony 很早前也支持了 Tag 的调度策略)。与所有的开源框架相比,Symphony 支持更多的 OS 平台以及硬件平台。例如 Hadoop 目前还没支持 Windows,而 Symphony 很早就支持了。更多的差异化,可以在 IBM 的 Knowledge Center 找到。 |
|
|
|
|
|