基于Spark的机器学习资料45、Mesos总体架构介绍.pdf

上传人:w*** 文档编号:73157676 上传时间:2023-02-15 格式:PDF 页数:3 大小:393.63KB
返回 下载 相关 举报
基于Spark的机器学习资料45、Mesos总体架构介绍.pdf_第1页
第1页 / 共3页
基于Spark的机器学习资料45、Mesos总体架构介绍.pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《基于Spark的机器学习资料45、Mesos总体架构介绍.pdf》由会员分享,可在线阅读,更多相关《基于Spark的机器学习资料45、Mesos总体架构介绍.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Mesos 总体架构介绍 一、简介 Mesos 是一个管理器,它通过分布式的应用或框架提供了一种高效的资源隔离和共享,它处于应用层和操作系统之间,使其易于部署,并使得在大规模集群环境中部署应用变得更高效。Mesos 是一个master/slave结构,其中,master是非常轻量级的,仅保存了framework(各种计算框架称为framework)和 mesos slave 的一些状态,而这些状态很容易通过 framework 和 slave 重新注册而重构,因而很容易使用了zookeeper 解决 mesos master 的单点故障问题。Mesos master 实际上是一个全局资源调度器

2、,采用某种策略将某个 slave 上的空闲资源分配给某一个 framework,各种 framework 通过自己的调度器向 Mesos master 注册,以接入到 Mesos 中;而 Mesos slave 主要功能是汇报任务的状态和启动各个 framework 的 executor。二、基本术语解释 1、Mesos-master:主要负责管理各个 framework 和 slave,并将 slave 上的资源分配给各个 framework。2、Mesos-slave:负责管理本节点上的各个 mesos-task。3、Framework:计算框架,比如 Hadoop、Spark 等。4、E

3、xecutor:执行器,安装到 mesos-slave 上,用于启动计算框架中的 task。三、架构介绍 Mesos-master 是整个系统的核心,负责管理接入 mesos 的各个 framework(由 frameworks_manager 管理)和 slave(由 slaves_manager 管理),并将 slave 上的资源按照某种策略分配给 framework(由独立插拔模块 Allocator 管理)。Mesos-slave 负责接收并执行来自 mesos-master 的命令、管理节点上的 mesos-task,并为各个 task 分配资源。mesos-slave 将自己的资源

4、量发送给 mesos-master,由 mesos-master 中的 Allocator 模块决定将资源分配给哪个framework,当前考虑的资源有 CPU 和内存两种,也就是说,mesos-slave 会将 CPU 个数和内存量发送给mesos-master,而用户提交作业时,需要指定每个任务需要的 CPU 个数和内存量,这样,当任务运行时,mesos-slave会将任务放到包含固定资源的 linux container 中运行,以达到资源隔离的效果。很明显,master 存在单点故障问题,为此,mesos 采用了 zookeeper 解决该问题。Framework 是指外部的计算框架,

5、如 Hadoop,Spark 等,这些计算框架可通过注册的方式接入 mesos,以便 mesos进行统一管理和资源分配。Mesos 要求可接入的框架必须有一个调度器模块,该调度器负责框架内部的任务调度。当一个 framework 想要接入 mesos 时,需要修改自己的调度器,以便向 mesos 注册,并获取 mesos 分配给自己的资源,这样再由自己的调度器将这些资源分配给框架中的任务,也就是说,整个 mesos 系统采用了双层调度框架:第一层,由 mesos 将资源分配给框架;第二层,框架自己的调度器将资源分配给自己内部的任务。当前 Mesos 支持三种语言编写的调度器,分别是 C+,ja

6、va 和 python,为了向各种调度器提供统一的接入方式,Mesos 内部采用 C+实现了一个 MesosSchedulerDriver(调度器驱动器),framework 的调度器可调用该 driver 中的接口与 Mesos-master 交互,完成一系列功能(如注册,资源分配等)。Executor 主要用于启动框架内部的 task。由于不同的框架,启动 task 的接口或者方式不同,当一个新的框架要接入 mesos 时,需要编写一个 executor,告诉 mesos 如何启动该框架中的 task。为了向各种框架提供统一的执行器编写方式,Mesos 内部采用 C+实现了一个 Mesos

7、ExecutorDiver(执行器驱动器),framework 可通过该驱动器的相关接口告诉 mesos 启动 task 的方法。Mesos 由管理运行在各个集群节点上的 slave 守护进程的 master 进程以及在这些 slave 上运行任务的 framework 组成。master 通过 framework 使用资源提供实现了细粒度的共享。每个资源提供是一个各个 slave 上空闲资源的列表。master 通过编制的策略,如公平共享或设置优先级,来决定为每个 framework 提供多少资源。为了支持一组不同内部框架分配策略,Mesos 允许组织者通过可插拔的配置模块定义他们自己的策略

8、。每个运行在 Mesos 上的框架由两个组件组成:一个由 master 注册的用于提供资源的 scheduler(调度器),以及 在 slave 节点上启动来运行框架任务的 executor process(执行进程)。当 master 决定了提供多少资源给框架,framework 的 scheduler 就选择所请求的资源以使用。当 framework 接受了请求的资源,它会向 Mesos 传递 一个它要启动的任务的描述信息。上图展示了一个框架如何调度并运行任务的示例。在第一步中,slave1 向 master 报告它有 4 个 CPU 和 4GB 的内存空闲。于是 master 调用了分配

9、模块,告诉 framework1 可以提供所有可用资源。在第二步中,master 发送了一个描述了这些资源的资源提供给 framework1。在第三步中,framework 的 scheduler 回应了 master 一条关于在 slave 上运行了 2 个任务的信息,使用了 2 个 CPU;1GB 内存和 1 个 CPU 用于第一个任务;2GB 内存用于第二个任务。最后,在第四步,master 发送任务给 slave,这个任务要求分配合适的资源给 framework 的 executor,executor 将启动两个任务(用虚线描绘的部分)。由于 1 个 CPU 和 1GB 内存仍然空闲,

10、此时分配模块会将他们提供给 framework2。此外,当任务完成而资源变为空闲时,资源提供进程会重复上述步骤。四、Mesos 上可构建的工程 长期运行的服务:Aurora-是一个服务调度器,运行在 Mesos 之上,允许你运行一些长期运行的服务,以利用 Mesos 的可扩展性、容错性和资源的隔离。Marathon-是一个构建在 Mesos 之上的私有 PaaS。它可以自动地处理硬件或软件故障,并保证一个应用“总是可用“的。Singularity-是一个用于运行 Mesos 任务的调度器(HTTP API 和 web 接口):长期运行的进程、一次性任务以及调度作业。SSSP-是一个简单的 we

11、b 应用,它为在 S3 中存储和共享文件提供了一个白色标签 Megaupload。大数据处理:Cray Chapel-是一种高效的并行编程语言。Chapel Mesos 调度器让你可以在 Mesos 上运行 Chapel 程序。Dpark-是一个 Spark 的 Python 克隆,是一个以 Python 编写的类 MapReduce 框架,它运行在 Mesos 上。Exelixi-是一个分布式框架,用于大规模运行遗传算法。Hadoop-在 Mesos 上运行 Hadoop 通过整个集群高效地分配 MapReduce 作业。Hama-是一个基于 Bulk Synchronous Paralle

12、l 计算技术的分布式计算框架,用于进行大规模的科学计算,如矩阵、图表、和网络算法等。MPI-是一个消息传递系统,设计于在各种各样并行计算机上的功能。Spark-是一个快速且通用的集群计算系统,它可以使并行作业更易于写。Storm-是一个分布式的实时计算系统。Storm 使可靠地处理数据的无界流变得简单,实时处理 Hadoop 所进行批处理的内容。批量调度:Chronos-是一个分布式作业调度器,支持复杂作业拓扑。它可以以容错性更强的特性代替 Cron。Jenkins-是一个持续集成服务器。mesos-jenkins 插件可以根据工作负载在 Mesos 集群上动态地启动 worker。JobServer-是一个分布式任务调度器和处理器,允许开发者们通过在 web 界面上点击来构建自定义批处理任务对列。数据存储:Cassandra-是一个高性能且高可用的分布式数据库。线性可扩展性以及在商业硬件或云基础设施中已经证明的容错性使其成为关键任务数据的最佳平台。ElasticSearch-是一个分布式搜索引擎。Mesos 使其易于运行和扩展。Hypertable-是一个高性能、可扩展、分布式的存储和处理系统,用于结构化和非结构化数据。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁