SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Apache Mesos 解读
庄晓丹 2015-08-14
解决什么问题?
• 普通 PC 组成的集群服务已经成为主要的运算平台
• 我们使⽤用 Hadoop,Dryad,Spark,MPI 等等不同框架来进⾏行分布式计算
或者存储。
• 每个框架要求的资源不同
• 每个框架的调度不同
• ⾯面临的问题
• 提⾼高集群机器利⽤用率
• 数据共享
• 可扩展,可伸缩:节点,不同版本的框架
解决什么问题?
• 当前的解决办法⽆无法令⼈人满意
• 集群静态分区,不同分区跑不同的框架
• 启⽤用⼀一组 VMs 给每个框架
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

Mais conteúdo relacionado

Mais procurados

主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0jinqing zhu
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战dennis zhuang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换mysqlops
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3redhat9
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)Lixun Peng
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangBuilding the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangCeph Community
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background宗志 陈
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discusseverestsun
 
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStackRongze Zhu
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
MySQL优化、新特性和新架构 彭立勋
MySQL优化、新特性和新架构 彭立勋MySQL优化、新特性和新架构 彭立勋
MySQL优化、新特性和新架构 彭立勋Lixun Peng
 

Mais procurados (20)

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

Destaque

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

Destaque (13)

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

Semelhante a Mesos intro

Docker+mesos安装最佳实践
Docker+mesos安装最佳实践Docker+mesos安装最佳实践
Docker+mesos安装最佳实践3908282
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路li luo
 
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場twMVC
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)涛 吴
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践锐 张
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践jackbillow
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多ITband
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统lonegunman
 

Semelhante a Mesos intro (20)

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

Mais de dennis zhuang

Java 与 CPU 高速缓存
Java 与 CPU 高速缓存Java 与 CPU 高速缓存
Java 与 CPU 高速缓存dennis zhuang
 
AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台dennis zhuang
 
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍dennis zhuang
 
Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎dennis zhuang
 
Java多线程常见陷阱
Java多线程常见陷阱Java多线程常见陷阱
Java多线程常见陷阱dennis zhuang
 

Mais de dennis zhuang (15)

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

Mesos intro