SlideShare a Scribd company logo
Apache Mesos 解读
庄晓丹 2015-08-14
解决什么问题?
• 普通 PC 组成的集群服务已经成为主要的运算平台
• 我们使⽤用 Hadoop,Dryad,Spark,MPI 等等不同框架来进⾏行分布式计算
或者存储。
• 每个框架要求的资源不同
• 每个框架的调度不同
• ⾯面临的问题
• 提⾼高集群机器利⽤用率
• 数据共享
• 可扩展,可伸缩:节点,不同版本的框架
解决什么问题?
• 当前的解决办法⽆无法令⼈人满意
• 集群静态分区,不同分区跑不同的框架
• 启⽤用⼀一组 VMs 给每个框架
Mesos intro
Mesos
• Mesos = Data center kernel
• Scalability to 10,000s of nodes
• Fault-tolerant replicated master and slaves using ZooKeeper
• Support for Docker containers
• Native isolation between tasks with Linux Containers
• Multi-resource scheduling (memory, CPU, disk, and ports)
• Java, Python and C++ APIs for developing new parallel applications
• Web UI for viewing cluster state
Architecture
Resource offer
资源分配
• 去中⼼心化调度,调度交给框架,保持 mesos 轻量简
单,并使得框架调度性能最⼤大化。
• Resource Offer 资源分配策略,默认提供公平和严格
优先两种策略。
• 资源调度⾯面临的问题:⼤大部分 task 很快,但是少部分
⻓长期运⾏行的 task 可能占据了集群的⼤大部分资源:
• revoke task,关停任务
• 给每个框架保证最低限额
隔离
• 使⽤用 OS 容器技术,⽐比如 Linux Container,
Solaris Projects 等。
可扩展和健壮
• Resource offer 可以被 Reject
• 避免频繁 Reject,提供 Filter
• Only offer nodes from List L
• Only offer nodes with at least R resource
free
• Resource Offer 接受控制,超时和限量
容灾
• Master 轻状态:
• 活跃的 Slaves
• 活跃的框架
• 运⾏行的 Task
• 可以很快地从 slave 和 schedulers 重建这些信息
• 利⽤用 Zookeeper 选举 master
• 框架调度器容灾:框架允许注册多个调度器,⼀一个失败,另⼀一
个将被唤醒,这样就可以直接利⽤用框架的容灾策略。
APIs
⿎鼓励框架
• 短任务:资源分配容易,减少重复调度
• 灵活伸缩
• Do not accept unknown resorces
实现: Apache mesos
• http://mesos.apache.org/
• 10000 ⾏行 C++ 代码,运⾏行在 Linux,OSX,Solaris
平台上,⽀支持 Java,C++,Python 语⾔言框架
• Hadoop 适配: 1500 ⾏行代码
• MPI 适配: 360 ⾏行代码
• Spark 适配: 1300 ⾏行代码
Benchmark
In both cases, the overhead of using Mesos was less than 4%.
Benchmark
其他数据
• 扩展到 50000 个 slave,受限于 EC2 的⺴⽹网络。
• 200 ~ 4000 个 Slave,Master 恢复平均耗时: 4
~8 秒
• 隔离:30% VS. 550% 的延迟对⽐比
• Media Wiki web server
• 256 个进程的 spin 循环
Marathon
• Mesos framework
• Deploy and manage
containers (including
Docker) on top of
Apache Mesos at scale.
API 为例
• 打包 API Jars
• 构建 docker image
• 推送到 docker 仓库
• 调⽤用 marathon API 部署
• Marathon 请求 mesos 分配资源,接受后请求 mesos slave 执⾏行任务
• Mesos slave executor 从 docker 仓库拉取指定 image,并启动容器运
⾏行,并检测是否正常
• slave 告知 marathon 调度器节点启动,调度器更新 upstream 元信息
• Nginx 每隔 5 秒检测 upstream 元信息,如果有变化就 reload
Marathon API
https://github.com/leancloud/uluru-platform/blob/master/
deploy/marathon/uluru-api-prod-ucloud.json
更多
• http://mesos.apache.org/
• http://mesos.berkeley.edu/
mesos_tech_report.pdf
• https://mesosphere.github.io/marathon

More Related Content

PDF
一个 Mongodb command 的前世今生
PPTX
对MySQL的一些改进想法和实现
PDF
Hacking Nginx at Taobao
PPTX
静态项目管理工具 - opm
PDF
Bypat博客出品-服务器运维集群方法总结2
PDF
Bypat博客出品-服务器运维集群方法总结
PPT
Database.Cache&Buffer&Lock
PPTX
快速入坑 Node.js - 0613 SITCON 雲林定期聚
一个 Mongodb command 的前世今生
对MySQL的一些改进想法和实现
Hacking Nginx at Taobao
静态项目管理工具 - opm
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结
Database.Cache&Buffer&Lock
快速入坑 Node.js - 0613 SITCON 雲林定期聚

What's hot (20)

PDF
主库自动切换 V2.0
PPTX
QCon - 一次 Clojure Web 编程实战
PPTX
RxJS 6 新手入門
PDF
淘宝主备数据库自动切换
PDF
Bypat博客出品-服务器运维集群方法总结3
PDF
分布式Key Value Store漫谈
PDF
MySQL多机房容灾设计(with Multi-Master)
PDF
对MySQL应用的一些总结
PDF
新浪微博Feed服务架构
PDF
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
PDF
Leveldb background
PDF
Google LevelDB Study Discuss
PDF
Ceph intro
PDF
Ceph in UnitedStack
PDF
微服務自己動手做
PPTX
高性能队列Fqueue的设计和使用实践
PDF
豆瓣网技术架构变迁
PPTX
前端自動化工具
PDF
MySQL优化、新特性和新架构 彭立勋
PDF
Ceph perf-tunning
主库自动切换 V2.0
QCon - 一次 Clojure Web 编程实战
RxJS 6 新手入門
淘宝主备数据库自动切换
Bypat博客出品-服务器运维集群方法总结3
分布式Key Value Store漫谈
MySQL多机房容灾设计(with Multi-Master)
对MySQL应用的一些总结
新浪微博Feed服务架构
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Leveldb background
Google LevelDB Study Discuss
Ceph intro
Ceph in UnitedStack
微服務自己動手做
高性能队列Fqueue的设计和使用实践
豆瓣网技术架构变迁
前端自動化工具
MySQL优化、新特性和新架构 彭立勋
Ceph perf-tunning
Ad

Viewers also liked (13)

PDF
Shanghai Underground Space Development and Planning
PDF
Yuan Hairong - Shanghai Xa Information Technology
PPT
数据库高可用架构
PPTX
我在 Mac 上的常用开发工具
PDF
OpenStack & Ceph integration
PDF
Clojure 1.8 Direct-Linking WWH
PDF
行政院簡報 交通部:交通建設與展望
PDF
工学院大学 オープンカレッジ 鉄道講座 「乗換検索サービスとビッグデータがもたらす公共交通の変革」
PDF
云趋势和实践 - 上海有孚网络股份有限公司
PDF
Qualcomm Halo in Formula E Beijing
PDF
美团点评技术沙龙07 - 大众点评支付渠道网关系统实践
PDF
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
PPTX
大型 Web Application 轉移到 微服務的經驗分享
Shanghai Underground Space Development and Planning
Yuan Hairong - Shanghai Xa Information Technology
数据库高可用架构
我在 Mac 上的常用开发工具
OpenStack & Ceph integration
Clojure 1.8 Direct-Linking WWH
行政院簡報 交通部:交通建設與展望
工学院大学 オープンカレッジ 鉄道講座 「乗換検索サービスとビッグデータがもたらす公共交通の変革」
云趋势和实践 - 上海有孚网络股份有限公司
Qualcomm Halo in Formula E Beijing
美团点评技术沙龙07 - 大众点评支付渠道网关系统实践
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
大型 Web Application 轉移到 微服務的經驗分享
Ad

Similar to Mesos intro (20)

PPTX
Docker+mesos安装最佳实践
PPTX
Nosql三步曲
PDF
Databases on AWS
PDF
阿里云技术实践
PPTX
分布式缓存与队列
PPSX
浅谈 My sql 性能调优
PPSX
MySQL应用优化实践
PPTX
云梯的多Namenode和跨机房之路
PDF
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
PPT
内存数据库[1]
PDF
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
PPTX
浅析分布式存储架构—设计自己的存储- 58同城徐振华
PPT
大规模网站架构
PDF
基于My sql的分布式数据库实践
PDF
基于MySQL的分布式数据库实践
PDF
利用统一存储获得无与伦比的速度,简化系统,并节省更多
PDF
合久必分,分久必合
PDF
Why use MySQL
PPT
构建可扩展的微博系统
Docker+mesos安装最佳实践
Nosql三步曲
Databases on AWS
阿里云技术实践
分布式缓存与队列
浅谈 My sql 性能调优
MySQL应用优化实践
云梯的多Namenode和跨机房之路
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
内存数据库[1]
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
浅析分布式存储架构—设计自己的存储- 58同城徐振华
大规模网站架构
基于My sql的分布式数据库实践
基于MySQL的分布式数据库实践
利用统一存储获得无与伦比的速度,简化系统,并节省更多
合久必分,分久必合
Why use MySQL
构建可扩展的微博系统

More from dennis zhuang (15)

PDF
Erlang scheduler
PDF
Java 与 CPU 高速缓存
PDF
Elixir introd
PPTX
CQL 实现
PDF
Hystrix 介绍
PDF
AVOSCloud简介——万象移动云平台
PDF
Avoscloud 2
PPTX
点评新架构
PPTX
Clojure概览
ODP
Ihome inaction 篇外篇之fp介绍
PPTX
Nio trick and trap
PPTX
Aviator——轻量级表达式执行引擎
PPTX
Clojure的魅力
PDF
Erlang简介
PPTX
Java多线程常见陷阱
Erlang scheduler
Java 与 CPU 高速缓存
Elixir introd
CQL 实现
Hystrix 介绍
AVOSCloud简介——万象移动云平台
Avoscloud 2
点评新架构
Clojure概览
Ihome inaction 篇外篇之fp介绍
Nio trick and trap
Aviator——轻量级表达式执行引擎
Clojure的魅力
Erlang简介
Java多线程常见陷阱

Mesos intro