$30 off During Our Annual Pro Sale. View Details »
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
52
Metadata Management in Distributed File Systems
kuenishi
2
530
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
420
Apache Ozone behind Simulation and AI Industries
kuenishi
0
400
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
750
Formalization and Proof of Distributed Systems (ja)
kuenishi
10
6.4k
Other Decks in Technology
See All in Technology
Product Engineer
resilire
0
130
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
1
110
.NET 10 のパフォーマンス改善
nenonaninu
2
4.7k
プロダクトマネージャーが押さえておくべき、ソフトウェア資産とAIエージェント投資効果 / pmconf2025
i35_267
2
340
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
210
たかが特別な時間の終わり / It's Only the End of Special Time
watany
2
480
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
430
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
5.9k
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
140
一億総業務改善を支える社内AIエージェント基盤の要諦
yukukotani
8
2.8k
AIにおける自由の追求
shujisado
3
470
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.4k
Music & Morning Musume
bryan
46
7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Building Adaptive Systems
keathley
44
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
How STYLIGHT went responsive
nonsquared
100
5.9k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
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勉強会やるよ!!