1 / 12
文档名称:

基于Marthon+Mesos+Docker分布式计算平台.doc

格式:doc   大小:740KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于Marthon+Mesos+Docker分布式计算平台.doc

上传人:rovend 2017/5/19 文件大小:740 KB

下载得到文件列表

基于Marthon+Mesos+Docker分布式计算平台.doc

文档介绍

文档介绍:基于 Marthon+Mesos+Docker 分布式计算平台?摘要:Docker 及其相关技术的出现和发展,又给大规模的集群管理带来了新的想象空间, 如何将二者有效地结合?本文介绍数人科技基于 Mesos 和 Docker 的分布式计算平台的实践?针对" 互联网+" 时代的业务增长、变化速度及大规模计算的需求,廉价的、高可扩展的分布式 x86 集群已经成为标准解决方案,如 Google 已经在几千万台服务器上部署分布式系统。 Docker 机器相关技术的出现和发展, 又给大规模集群管理带来了新的想象空间。如何将二者有效地结合? 分布式系统设计准则 1可伸缩性首先分布式系统一定要是大规模的系统, 有很好的 Scalability 。出于成本的考虑, 很多大规模的分布式系统一般采用廉价的 PC 服务器,而不是大型的高性能服务器 2没有单点失效廉价的 PC 服务器在大规模集群使用中经常会遇到各种各样的问题, PC 服务器的硬件不可能是可靠的,比如 Google 的数据中心都会有大量的硬盘失效,所以分布式系统一定要对硬件容错, 保证没有任何的单点失效。在这种很不稳定、很不可靠的硬件计算环境下, 搭建一个分布式系统提供可靠的服务, 必须通过软件来容错。分布式系统针对不允许有单点失效的要求有两方面的设计考虑。一种是服务类的企业级应用, 每个服务后台实例都需要有多个副本, 一两台硬件故障不至于影响所有服务实例; 另外一种数据存储的应用, 没分数据也必须要有多个备份, 保证即使某几个硬件坏掉了数据也不会丢失 3高可靠性除了单点失效, 还要保证高可靠性。在分布式环境下, 针对企业级服务应用, 要做负载均衡和服务发现来保证高可靠性; 针对数据服务, 为了做到高可靠性, 首先要按照某种算法来把整体数据分片( 因为一台服务器装不下) ,然后按照同样的算法来进行分片查找 4数据本地性再一个分布式设计理念是数据本地性, 因为网络通信开销是分布式系统的瓶颈, 要减少网络开销,应当让计算任务去找数据,而不是让数据去找计算分布式系统与 Linux 操作系统的比较由于纵向拓展可优化空间太小( 单台服务器的性能上线很明显) ,分布式系统强调横向扩展、横向优化, 当分布式集群计算资源不足时, 就要往集群里面添加服务器, 来不停地提升分布式集群的计算能力。分布式系统要做到统一管理集群的所有服务器,屏蔽底层管理细节,诸如容错、调度、通信等,让开发人员觉得分布式集群在逻辑上是一台服务器和单台的 Linux 操作系统相比, 虽然分布式系统还没有成熟到成为" 分布式操作系统", 但它和单机的 Linux 一样要解决五大类操作系统必需的功能, 即资源分配、进程管理、任务调度、进程间通信(IPC) 和文件系统,可分别有 Mesos 、 Doker 、 Marthon/Chronos 、 RabbitMQ 和 HDFS/Cep h 来解决,对应于 Linux 下的 Linux Kernel 、 Linux Kernel 、 、 Pipe/Socket 和 ext4 基于 Mesos 的分布式计算平台 资源分配管理目前数人科技的 Mesos 集群部署在公有云服务上,用 100 多台虚拟机组成 Mesos 集群。 Meso s 不要求计算节点是物理服务器还是虚拟服务器, 只要是 Linux 操作系统就可以。 Mesos 可以理解成为一个分布式的 Kernel , 只分配集群计算资源,不负责任务调度。基于 Mesos 之上可以运行不通的分布式计算平台,如 Spark 、 Storm 、 Hadoop 、 Marthon 和 Chronnos( 作业调度器)等。 Spark 、 Stor m 和 Hadoop 这样的计算平台有任务调度功能,可以直接使用 Mesos SDK 跟 Mesos 请求资源,然后自行调度计算任务,并对硬件容错。 Marthon 针对服务型分布式应用提供调度,比如企业网站等这类需要长时间运行的服务。通常网站应用程序没有任务调度和容错能力,因为网站程序不太会处理某个后台实例挂掉以后在哪台服务器上重新恢复等这类复杂问题。这类没有任务调用能力的服务型分布式应用, 可以用 Marthon 来负责调度。比如, Marthon 调度执行了网站服务的一百个后台实例,如果某个实例挂掉了, Marthon 会在其他服务器上把这个实例恢复起来。 Chrono s 是针对分布式批处理应用提供任务调度器,比如定期处理日志或者定期调 Hadoop 等离线任务。 Mesos 最大的好处就是能够对分布式集群做细粒度资源分配。如图 2 所示, 左边是粗粒度的资源分配,右边是细粒度的资源分配图2 左边有三个集群。每个集群三台服务器, 分别安装三种分布式计算平台