2019独角兽企业重金招聘Python工程师标准>>>

【编者的话】不论是 YARN、Mesos 还是 Omega,都是某种意义上为集群设计的操作系统,让用户像使用一台单机一样来使用整个集群。向下集中管理所有物理资源,向上承载各种集群化的应用; 同时, docker 的出现也为云操作系统提供了更有力的支撑。

1984年,SUN 的 John Gage 说出了那句家喻户晓的名言 “网络就是计算机”

三十年后,Gage 的梦想“几乎”成为的现实。特别是随着 web 2.0 和云计算时代的到来,人们可以使用任何设备从任何地方通过互联网访问任何云端的资源。

不过即使在“云端”,实际上还是一堆物理服务器。每一台服务器的 CPU 和内存资源都是有限的,但是组合成集群就像云一样无穷无尽。套用 Gage 的名言,可以说**“集群就是计算机”**。

当单机的 **CPU 性能硬盘容量**逐渐碰到了天花板,通过 Hadoop 这样的集群化技术来突破单机性能瓶颈就越来越流行。当然在 Hadoop 出现之前,集群方案早就应用于高性能的生产系统,例如 Weblogic 或者集群化的 WEB 服务器(复杂均衡按照 round-robin 算法将流量发送到集群中的 Web 服务器上)。这些集群方案都针对特定场景设计,无法像通用的计算机一样用来运行各种不同的软件。

Hadoop 是第一个具有通用的集群化计算平台特征的技术,而且目前已经发展地相当成熟。随着新的集群化计算技术层出不穷,例如 Spark、Storm 和 Cassandra,运维人员希望能够隔离它们以便更好的管理,同时,从节约成本的角度讲, 大家又希望公司内部各个团队能够共用这些昂贵的计算资源。

目前解决这个问题的两大法宝是 Hadoop YARN 和 Apache Mesos。Mesos 的设计受到了 Google 的 Omega 平台启发,而后者则来自 Google 内部久经实验的Borg任务管理平台。同样的事情当初也发声在 Hadoop 之上,它就是受到了 Google 的 GFS 和 Big-Table 启发。不论是 YARN、Mesos 还是 Omega,都是某种意义上为集群设计的操作系统,让用户像使用一台单机一样来使用整个集群。向下集中管理所有物理资源,向上承载各种集群化的应用。

因为 YARN 本身与 Hadoop/Map Reduce v2 绑定,对于使用早期 Hadoop 版本的开发者,升级到 YARN 也许是一个比较容易的决定。理论上可以将 YARN 跑在 Mesos 上,不过有些人担心随之而来的两层资源分配问题。

Mesos 可以支持大量的框架(插件),逐步在构建一个快速增长的生态环境。例如 Twitter的 Aurora 就是用来在 Mesos 管理的集群上进行任务调度,已经成为了 Apache 的孵化器项目。此外 Ringmaster 则用来在 Mesos 上快速运行 Cassandra 和 Spark。

Chronos 相当于 Mesos 之上的 crontable,Marathon 则相当于 init.d,让大家用熟悉的方式来调度任务。

最激动人心的还是 Docker 与 mesos 的整合,几乎让 Mesos 可以运行任何语言编写的软件。

Docker 的崛起本身和集群技术倒没有直接关系,它首先被用来代替传统的 VM(虚拟机)。容器分享了底层操作系统,远比传统 VM 更加轻量。类似技术在2000年就出现了,那就是“jail”命令。Wiki 有关词条描述了 35 年来 chroot 如何发展到 jails,最后的 Docker 和容器成为了集大成者。

Docker 化的应用像一个 tar 压缩包,在一台普通的物理机上,你可以轻松地运行数十个独立的 Docker。对于一个由 Mesos 管理的集群,而且恰好你的应用某种程度上使用了分布式的架构,那么瞬间你的集群变成了一台强大的大型机。其实 tar 本身意思是 “tape archive”,就是过去大型机磁带系统的文件格式。

使用 Docker 容器来完全取代传统的 jar 或者 ear 文件,一夜间用 Mesos 来完全取代 weblogic,还是有点操之过急——目前传统软件的架构依然是 web、计算逻辑和存储分开部署。不过对于互联网公司的后台,用 Mesos 来承载 web 服务器集群应付高并发业务,完全不是什么新鲜事儿了。

点击**查看英文源文** 源文作者:michaelmalak

转载于:https://my.oschina.net/shurenyun/blog/597279

译 | 像使用一台主机一样管理集群相关推荐

  1. 单台主机 kafka + zookeeper 集群搭建

    文章转自: https://www.jianshu.com/p/dc4770fc34b6 在单台主机上搭建kafka + zookeeper 集群. zookeeper 集群搭建 kafka是通过zo ...

  2. rhel6多台主机的HA集群,并实现增加仲裁盘和共享存储

    所有的服务最好设置开机启动 [root@node1-f15 ~]# chkconfig modclusterd on [root@node1-f15 ~]# chkconfig ricci on [r ...

  3. rhel6下组建两台主机的HA集群

    [kiosk@foundation15 Desktop]$ ssh root@172.25.15.10#配置初始化环境 Last login: Thu Jul  2 16:02:25 2015 fro ...

  4. NoSQL(二):创建、管理集群

    创建集群 集群环境 拓扑结构 IP规划 工作原理 工作原理 无论有多少台redis服务器,一共都会有0-16383共16384个槽 slot的作用:用来确定存储变量时,变量存储在哪一台redis服务器 ...

  5. RHEL下安装配置基于2台服务器的MYSQL集群

    一.介绍 ======== 这篇文档旨在介绍如何在RHEL下安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的 ...

  6. 2台mysql集群_如何安装配置基于2台服务器的MySQL集群

    这篇文章旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意!虽然这是基于2台服务器的MySQL集群,但也必须有额外的第三台服务 ...

  7. K8s-kubectl远程管理集群

    在实际工作中,我们有一个需求,需要远程登陆管理集群.其实不用非要登录k8s-master去敲命令,可以使用任意一台内网互通的机器安装kubectl命令,去远程管理集群,非常方便 1.安装kubectl ...

  8. 64: 创建集群 、 管理集群 、 总结和答疑

    Top NSD NOSQL DAY02 案例1:部署redis集群 案例2:添加服务器 案例3:移除服务器 1 案例1:部署redis集群 1.1 问题 具体要求如下: 部署管理主机 创建集群 查看集 ...

  9. VPS、云主机 and 服务器集群、云计算 的区别

    VPS:(virtual private server)虚拟专用服务器,将一台服务器分割成多个虚拟专享服务器的优质服务.实现VPS的技术分为容器技术和虚拟化技术.在容器或虚拟机中,每个VPS都可分配独 ...

最新文章

  1. PagingAndSortingRepository接口与 JpaRepository接口
  2. Struts2三种传参方式(从jsp页面传到Action)
  3. 希尔排序及C语言实现
  4. 打开和关闭mysql服务的两种方法
  5. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第4章-基于证据推理的多 Agent 分布式决策
  6. fsb,fev文件格式转换,提取与打包
  7. C++找到一个大于或等于n且为2的幂的数字p的算法实现(附完整源码)
  8. 【TensorFlow-windows】学习笔记六——变分自编码器
  9. java servlet_Java Servlet的前100个问题
  10. 敏捷管理之绩效考核方案
  11. KubeFlow安装指南
  12. 15产品经理要懂的-社会基本规律
  13. Nginx 反向代理配置
  14. Bailian4151 电影节【贪心】
  15. 学习webbench需要掌握的基础知识(webbench源代码学习心得)
  16. 1011 A+B和C
  17. linux远程控制木马,Kali Linux-使用Shellter生成远控木马并进行持久化控制
  18. html表格的冻结列
  19. 解决Mysql计算时除数为0
  20. 生鲜配送ERP系统_对商品模块数据模型与界面设计的思考【Java 开源版】杭州生鲜配送系统_升鲜宝_SaaS全链路生鲜供应链管理系统_升鲜宝

热门文章

  1. java解三角函数方程_Java 中的三角函数
  2. Spring Boot返回的数据格式是XML 而不是JSON之原因探求的和解决
  3. [ExtJS 6] SenchaCmd编译出错与解决
  4. c语言 调用父类方法,关于C++:如何从派生类函数调用父类函数?
  5. linux查看消息队列的状态,linux – 如何知道某个时间点在消息队列中收到的消息数...
  6. c语言缩写一个人的名字,用C语言输入一个人的英文名字统计个数输出
  7. v9更新系统后为何显示服务器连接,V9服务器
  8. java双机和集群的区别,java 分布式与集群的区别和联系
  9. Broken Keyboard (a.k.a. Beiju Text) UVA - 11988 (链表)
  10. vim提示-bash:vim :common not found解决方法