Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
分散スケジューラMesosの紹介
Search
UENISHI Kota
July 14, 2016
Technology
2
1.4k
分散スケジューラMesosの紹介
db tech showcase 2016 のスライド
UENISHI Kota
July 14, 2016
Tweet
Share
More Decks by UENISHI Kota
See All by UENISHI Kota
Storage Systems in Preferred Networks
kuenishi
0
34
Metadata Management in Distributed File Systems
kuenishi
2
510
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
400
Apache Ozone behind Simulation and AI Industries
kuenishi
0
380
Distributed Deep Learning with Chainer and Hadoop
kuenishi
3
1.2k
A Few Ways to Accelerate Deep Learning
kuenishi
0
1.1k
Introducing Retz
kuenishi
5
1.2k
Introducing Retz and how to develop practical frameworks
kuenishi
3
740
Formalization and Proof of Distributed Systems (ja)
kuenishi
10
6.4k
Other Decks in Technology
See All in Technology
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
140
Eval-Centric AI: Agent 開発におけるベストプラクティスの探求
asei
0
120
Instant Apps Eulogy
cyrilmottier
1
110
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
28
12k
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
160
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
160
開発 × 生成AI × コミュニケーション:GENDAの開発現場で感じたコミュニケーションの変化 / GENDA Tech Talk #1
genda
0
210
JAWS AI/ML #30 AI コーディング IDE "Kiro" を触ってみよう
inariku
3
360
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
210
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
2k
ZOZOTOWNの大規模マーケティングメール配信を支えるアーキテクチャ
zozotech
PRO
0
290
o11yツールを乗り換えた話
tak0x00
2
1.3k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Typedesign – Prime Four
hannesfritz
42
2.7k
RailsConf 2023
tenderlove
30
1.2k
Raft: Consensus for Rubyists
vanstee
140
7.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Code Review Best Practice
trishagee
69
19k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Embracing the Ebb and Flow
colly
86
4.8k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Transcript
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. Proprietary
& Confidential NAUTILUS 分散スケジューラMesosの紹介 Kota UENISHI 2016/7/14 db tech showcase 2016 秋葉原 株式会社ノーチラス・テクノロジーズ http://www.nautilus-technologies.com/ mailto:
[email protected]
Tel: 03-6712-0636 Fax: 03-6712-0664
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
2 Proprietary & Confidential Operating System とは何だったのか CPU オペレーティングシステム アプリケーション システムコール POSIX API, ABI, libc 機械語 デバイスドライバ ファームウェア メモリ I/O アプリケーション アプリケーション アプリケーション アプリケーション アプリケーション アプリケーション ユーザ管理、隔離 多重化 プロセススケジューリング メモリ管理 IOスケジューリング
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
3 Proprietary & Confidential OSのない/ある時代のコンピュータの使い方 OSがない OSがある ユーザ管理 列に並んでログインを 待つ みんな同時ログイン プロセス多重化 列に並んでログインと 実行を待つ Runqueue上で待つ メモリ管理 他に誰もいない 仮想メモリ空間 IOスケジューラ 他に誰もいない IO queue上で待つ システムコール 都度プログラミング 統一されたAPI アプリケーション開発 手動アセンブリ コンパイラがABIを合 わせてくれる
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
4 Proprietary & Confidential OSのない/ある時代のコンピュータの使い方 OSがない OSがある スケジューリング ノンプリエンプティブ シリアル実行 実行可能なものから 順番 ジョブの予約 パンチカードを担当者 に渡す コマンド実行 ジョブの待ち時間 長い 短い リソース使用率 低い 高い
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
5 Proprietary & Confidential ビッグ!データ!時代!!はなんでも分散
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
6 Proprietary & Confidential “大規模” システムのシンプルさと効率のトレードオフ 管理しやすい シンプルな構成 リソース 利用効率 •運用のコスト高い •管理可能なスケールに限界 •システムの構成要素少ない •初期システム設計が高コスト •重厚長大になりがち •システムの構成要素多い •アプリケーションをノード分離 •リソース分離 •スタティックな構成 •手動の障害対応 •アプリケーションの分離 •アプリ同士のリソース共有 •ダイナミックな構成 •自動で障害対応
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
7 Proprietary & Confidential ビッグデータ時代のシステムが抱える課題 ▪管理しないといけないサブシステムが沢山 ▪リソース分離とリソース利用効率がトレードオフ – リソース競合しないアプリAとアプリBを同居させても動きそうだけど、ホントに 大丈夫かなあ… ▪瞬発力を必要とするアプリケーション – 30GBのデータをスキャンして別のデータとjoinするクエリを3000コアのCPU を使って20秒で終わらせたい – 一時的に20TBのデータをメモリにのせてプログラムを走らせたい – Webサーバーを増やしてキャンペーンの間だけ3000QPS捌きたい – 月次の集計バッチのときだけ50ノードのCPUとメモリを使いたい – フェイルオーバーしてたので新しいノードをすぐもってきたい ▪完全仮想化、準仮想化のオーバーヘッド – 5~10% でも惜しい ▪拡張性 – 100台サーバー追加、どのアプリにどれだけ追加すればよいのか? – それぞれ別々にデプロイするのめんどくさい…
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
8 Proprietary & Confidential Mesos: DC用リソース管理&分散スケジューラ Apache Mesos は CPU, メモリ、ストレージなど、あらゆるリソースを(物理および仮想)マシンから抽象化し 耐障害性と可塑性のある分散システムを簡単かつ効率的にに構築、実行できるようになります
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
9 Proprietary & Confidential Mesos: distributed systems kernel Mesosって何? 分散システムのカーネルだよ! Mesos は Linux カーネルと同じ原則で設計、開発されています。違うのは抽象化されているレベルだけです。 Mesos カーネルはあらゆるマシン上で動作し、 Hadoop, Spark, Kafka, Elastic Search といったアプリケーションに APIを通じて、データセンタ丸ごと、クラウド環境まるごとの上にリソース管理とスケジューリングを提供します。
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
10 Proprietary & Confidential Mesos: まことしやかな噂@シリコンバレー 「Mesosって何?」 「GoogleのBorgみたいなもんだよ」
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
11 Proprietary & Confidential 分散スケジューラのない/ある時代のコンピュータの使い方 ない ある アプリケーション管理 別ノード コンテナ分離 リソース共有 別クラスタ 必要なときだけ確保 メモリ管理 別クラスタ 必要なときだけ確保 耐障害性 自前、アプリ毎、手動 自動、アプリごと 可塑性 ノード追加 予備リソース投入 アプリケーション開発 開発環境を維持 必要なときにデプロイ
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
12 Proprietary & Confidential 分散スケジューラのない/ある時代のコンピュータの使い方 OSがない OSがある スケジューリング スタティック ダイナミック ジョブの予約 前のジョブが終わった ら実行 リソース確保できたら 実行 ジョブの待ち時間 順番待ち 確保できるかぎりなし リソース使用率 低い 高い
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
13 Proprietary & Confidential Mesosの構成 Master Agent Executor Executor Executor Executor Agent Executor Executor Executor Executor Agent Executor Executor Executor Executor •…....... Framework Scheduler C Framework Scheduler B Framework Scheduler A
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
14 Proprietary & Confidential Mesosの特徴 ▪いいところ – リソース管理とスケジューリングのモジュールの分離 - “Resource Offer” ▪ スケジューリングアルゴリズムを、目的に応じて切り替えたり最適化できる ▪ Masterの負荷を低減 – Scheduler / Executor のシンプルな API ▪ 豊富な言語サポート ▪ 豊富なフレームワークのサポート – きれいなC++で書かれている ▪Mesosの残念なところ – 高可用動作にはZooKeeperが必要 – マルチDCを明示的にはサポートしていない – フレームワークもミドルウェアなので、作るのは簡単だがテストしづらい
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
15 Proprietary & Confidential 典型的なスケジューリング ▪アプリケーションがスケジューラに「リソースをくれ」と頼む ▪スケジューラは手持ちからアプリケーションに渡せるリソースを渡す ▪リソースがない場合は、待たせるまたは失敗 ▪Cons: – スケジューリングも同時に行うためスケジューラのMasterの負荷が高くなる – アプリケーションがバラバラにリソース要求をしてくるのでアプリケーション間 のリソース最適化をしにくい – 全てのアプリケーションに同じアルゴリズムでリソース配分を行うので、スケジ ューラ側で最適化をしやすいが、それがアプリケーションにとってよいとは限ら ない
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
16 Proprietary & Confidential MesosのResource Offer ▪“Two-level Scheduling” ▪リソース管理とスケジューリングの分離 ▪Masterが各Frameworkに「このリソースいる?」と尋ねてまわる ▪Frameworkは、その中から必要な分だけ使う ▪いらない分は次のFrameworkにOfferを出す ▪Pros: – 余っている分のリソースがアプリケーションに全て伝わるので、アプリケーショ ン側で最適化をしやすい ▪Cons: – OfferをもらうまでFrameworkは待たなければいけない
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
17 Proprietary & Confidential タスク起動の仕組み Master Agent Executor Agent Executor Framework Scheduler 1. Resource Offer 2. Accept Offer 3. Launch Task 4. Fork & Exec 4. Fork & Exec 5. Status Update 5. Status Update •Executorは daemon でもOK •Executorは ただのコマンドでもOK •Executorは Docker イメージでもOK •Framework SchedulerはMarathonで管理
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
18 Proprietary & Confidential Frameworks ▪Aurora, Marathon – プロセス管理やオートスケール、故障時の再起動などをしてくれるサービスス ケジューラ ▪Airflow – ワークフローエンジン ▪Spark, Hadoop ▪MPI – HPC向け分散処理フレームワーク ▪Chronos – 高可用クラスタCron ▪Jenkins ▪Cassandra ▪Elasticsearch http://mesos.apache.org/documentation/latest/frameworks/
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
19 Proprietary & Confidential Frameworkを作ろう! ▪Frameworkを作らないとMesosを使いきったとはいえない ▪Scheduler クラスを継承してコールバックを実装 ▪Scheduler driverを叩いて命令を伝える ▪Executor クラスを継承してコールバックを実装 ▪Executor driverを叩いて命令を伝える ▪うごかす
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
20 Proprietary & Confidential みんな使っています ▪Airbnb ▪Apple ▪Atlassian ▪CERN ▪Cisco ▪eBay ▪Ericsson ▪Groupon ▪Hootsuite ▪Mesosphere •https://github.com/apache/mesos/blob/master/docs/powered-by-mesos.md •と、他にもいくつかのソースから ▪Netflix ▪Twitter ▪Uber ▪UC Berkeley ▪Yelp ▪Microsoft ▪Two Sigma ▪…
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
21 Proprietary & Confidential Datacenter scheduling ▪沢山あるコンピュータに、どこにどれだけアプリケーションを効率 的かつ安定して割り当てるか ▪グリッドの時代からある、古くて新しい問題 – ユースケースごとに最適化した解があり、目的に特化することが多い ▪YARN – Hadoop MapReduce からスケジューラー相当のコードを切り離し て汎用化したもの。 ▪Borg – Googleが世界中にある自社DC内のコンピュータと、その上で動くア プリケーションを管理するためのスケジューラ ▪似ているけど全然違うもの – OpenStack, CloudStack, Kubernetes, Ansible, Chef, CoreOS
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
22 Proprietary & Confidential Questions? お知らせ:Mesos勉強会 ▪近いうちにやります ▪都内、平日夕方
Copyright © 2012 Nautilus Technologies, Inc. All rights reserved. NAUTILUS
23 Proprietary & Confidential Agenda 1. OSとは何だったのか「コンピュータを運用するためのシステム(ソフト ウェア)」 → I/O抽象化(デバイスドライバ、firmware、HW)→メモリ 管理、プロセス多重化/CPU管理、スケジューリング(高レベル、低レベ ル) 「システムコール」 2. OSのない時代、ある時代のコンピューティング 3. Datacenter OSとは何か? 4. 分散スケジューラ is 何 -- Goal: 複数あるコンピュータ資源を極限ま で使い倒す(スケジューラー リソース管理/制限 まるちてなんしー) 5. Datacenter OSのない時代、ある時代のコンピューティング 6. 仕組み(Master, Agent, Framework Scheduler, Executor) 7. みんな使っています 8. 類似: YARN, k8s, OpenStack, CloudStack 9. Mesos勉強会やるよ!!