首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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 找到。
返回列表