Borg(来自Google),YARN(来自Apache,属于Hadoop下面的一个分支,开源),Mesos(来自Twitter,开源),Torca(来自腾讯搜搜),Corona(来自Facebook,开源)一类系统被称为资源统一管理系统或者资源统一调度系统,它们是大数据时代的必然产物。概括起来,这类系统设计动机是解决以下两类问题:
(1) 提高集群资源利用率
在大数据时代,为了存储和处理海量数据,需要规模较大的服务器集群或者数据中心,一般说来,这些集群上运行着数量众多类型纷杂的应用程序和服务,比如离线作业,流式作业,迭代式作业,crawler server,web server等,传统的做法是,每种类型的作业或者服务对应一个单独的集群,以避免相互干扰。这样,集群被分割成数量众多的小集群,有的集群运行Hadoop,有的运行Storm,有的运行Spark,有的运行web server,然而,由于不同类型的作业/服务需要的资源量不同,因此,这些小集群的利用率通常很不均衡,有的集群满负荷、资源紧张,而另外一些则长时间闲置、资源利用率极低,为了提高资源整体利用率,一种解决方案是将这些小集群合并成一个大集群,让它们共享这个大集群的资源,并由一个资源统一调度系统进行资源管理和分配,这就诞生了Borg,YARN,Mesos,Torca,Corona。从集群共享角度看,这类系统实际上将公司的所有硬件资源抽象成一个台大型计算机,供所有用户使用。
(2) 服务自动化部署
一旦将所有计算资源抽象成一个“大型计算机”后,就会产生一个问题:公司的各种服务如何进行部署?同样,Borg/YARN/Mesos/Torca/Corona一类系统需要具备服务自动化部署的功能,因此,从服务部署的角度看,这类系统实际上是服务统一管理系统,这类系统提供服务资源申请,服务自动化部署,服务容错等动能。
以上只是简单的介绍了这一类系统的设计动机和产生背景,接下来从两个角度解析这类系统。
角度一:数据中心编程
任何一个公司内部所有的硬件资源均可看做一个数据中心,通过Borg/YARN/Mesos/Torca/Corona一类系统对这些资源进行统一管理后,用户所有的程序和服务将通过一个统一入口进入数据中心,并由这类系统为之分配资源、监控程序和服务运行状态,并在失败时启用必要的容错机制,汇报程序的执行进度等,而至于应用程序或者服务运行在具体哪台机器上,所在机器的ip、端口号是什么,则用户无需管理,全部交由统一管理系统进行管理(用户也许可以查询到)。
具体说来,采用此类系统之后,当用户执行应用程序或者部署服务时,只需通过一个配置文件描述应用程序或服务需要的资源(比如CPU、内存、磁盘、操作系统类型等)、待执行的命令、依赖的外部文件等信息,然后通过一个客户端提交到Borg/YARN/Mesos/Torca/Corona上,剩下的工作则完全交给系统。
角度二:生态系统
从另外一个角度看,Borg/YARN/Mesos/Torca/Corona一类系统可以为公司构建一个内部的生态系统,所有应用程序和服务可以“和平而友好”地运行在该生态系统上。有了这类系统之后,你不必忧愁使用Hadoop的哪个版本,是Hadoop 0.20.2还是 Hadoop 1.0,你也不必为选择何种计算模型而苦恼,因此各种软件版本,各种计算模型可以一起运行在一台“超级计算机”上了。
从开源角度看,YARN的提出,从一定程度上弱化了多计算框架的优劣之争。YARN是在Hadoop MapReduce基础上演化而来的,在MapReduce时代,很多人批评MapReduce不适合迭代计算和流失计算,于是出现了Spark和Storm等计算框架,而这些系统的开发者则在自己的网站上或者论文里与MapReduce对比,鼓吹自己的系统多么先进高效,而出现了YARN之后,则形势变得明朗:MapReduce只是运行在YARN之上的一类应用程序抽象,Spark和Storm本质上也是,他们只是针对不同类型的应用开发的,没有优劣之别,各有所长,合并共处,而且,今后所有计算框架的开发,不出意外的话,也应是在YARN之上。这样,一个以YARN为底层资源管理平台,多种计算框架运行于其上的生态系统诞生了。
这一篇和上一篇《多集群下资源共享方案介绍》内容有些重复,我一直在反反复复强调资源管理/调度系统,目的只有一个,我想告诉大家:YARN时代来了!(所有的软件和服务都在往YARN上移,包括MapReduce,Spark,Storm,MPI,HBase部署等…..)
参考资料:
Borg:http://www.quora.com/What-is-Borg-at-Google
YARN:http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/
Mesos:http://www.mesosproject.org/
Torca:http://djt.qq.com/thread-29998-1-2.html
Mesos与YARN比较:http://dongxicheng.org/mapreduce-nextgen/mesos_vs_yarn/
Corona:http://dongxicheng.org/hadoop-corona/hadoop-corona/
原创文章,转载请注明: 转载自董的博客
本文链接地址: http://dongxicheng.org/mapreduce-nextgen/borg-yarn-mesos-torca-corona/
http://m635674608.iteye.com/admin/blogs/new
相关推荐
borg-docker-volume 这是一个Bash脚本,用于使用Docker卷的内容。 要求 对于使用Borg备份Docker卷的... 输入后,将在/path/to/borg/repository创建一个加密的Borg存储/path/to/borg/repository 。 我强烈建议对备份
Google Borg系统是一套由Google内部使用的集群管理系统,该系统负责在成千上万台机器组成的多个集群上调度和管理成百上千个不同应用程序的数以十万计的任务。Borg系统通过融合接纳控制、高效的资源打包、超配以及...
Go-Swan是一个深受Google Borg设计理念启发的分布式、高可用的Mesos调度程序。它采用Golang编程语言实现,为Mesos集群提供了强大的应用程序管理和部署功能。在深入探讨Go-Swan之前,我们先了解一下Mesos和Google ...
谷歌的Borg系统是一个集群管理工具,它在多个集群上运行数十万个工作,这些工作来自成千上万不同的应用程序,每个集群最多可达数万台机器。Borg系统的主要特点包括高利用率、高效的资源管理和故障处理抽象化、对高...
Mesos 的设计理念源于 Google 的 Borg 系统,它将集群视为一个单一的抽象资源池,通过 Master 和 Slave 节点的架构实现资源的分配和管理。Master 节点负责全局调度,Slave 节点则运行在每台服务器上,负责汇报资源...
" Borg9 "是一个与字体相关的主题,这通常指的是一个特定的字体设计或一套字体集合。在计算机领域,字体是用于显示或打印文本的图形表示,它们由一系列字符组成,包括字母、数字和符号,每种都有独特的样式和形状。...
为了解决Hadoop在实时处理上的局限,出现了资源统一管理和调度系统,如Apache Mesos、YARN(Yet Another Resource Negotiator)、Google Borg、腾讯搜搜的Torca和Facebook的Corona。这些系统旨在优化资源利用率,...
为了解决Hadoop的批处理问题,出现了各种资源管理和调度系统,如Apache Mesos、YARN(Yet Another Resource Negotiator)、Google的Borg、腾讯搜搜的Torca和Facebook的Corona等。这些系统致力于提高资源利用率,...
开源项目“crufter-borg.zip”包含了一个名为Borg的终端命令搜索引擎,它专为bash shell构建,并采用Go语言进行开发。这个项目旨在帮助用户更高效地查找和使用bash命令,提升他们在命令行环境中的工作效率。 首先,...
BORG :一个快速进化的僵尸网络 数据安全 工控安全 金融安全 安全威胁 企业安全
Mesos的设计灵感来源于Google的 Borg系统,它将数据中心的硬件抽象成一个统一的资源池,让应用程序能够跨多个节点透明地运行。Mesos支持多种框架,如 Marathon (用于持久化无状态任务) 和 Spark (用于大数据处理)。 ...
随着软件容器技术在近年来的迅速普及,Google作为该领域的先驱之一,已经在大规模管理Linux容器方面积累了超过十年的经验,并在此期间构建了三代不同的容器管理系统:Borg、Omega 和 Kubernetes。本文将详细介绍这三...
例如:如果SUBS = @home rootfs ,但是在/ home / backups上也有一个名为@backups的子卷,则1)/ home / backups将不属于您的borg备份,因为btrfs-subvolume snap不会备份子卷。 2)如果您的清单转到/ home / ...
许多Borg用户确切地知道他们在做什么,只需要该程序即可简单地创建或删除新快照。 新的Borg用户还可以使用BORG BackUP GUI快速地到达目的地。 当然必须安装BorgBackup(简称:Borg) 在这里您将找到有关博格的...