1.前文
他の多くの分散システムと同様に、Apache Mesosは設計を単純化するためにマスター/スレーブ構造を採用しています。 マスターの単一障害点を解決するために、マスターは可能な限り軽量化され、その上のすべてのメタデータは様々なスレーブを通して再登録し、再設定することができるため、zookeeperで単一障害点問題を解決するのは簡単です。zookeeperの単一障害点問題を解決するのは簡単です。
2.Apacheメソスの基本用語解説
Mesos-slave: このノードの各 mesos タスクの管理(各 executor へのリソース割り当てなど)を担当する Mesos スレーブ。
Executor: mesos-slaveにインストールされ、コンピュートフレームワークのタスクを起動するためのエクゼキュータ。
ユーザーが新しいコンピューティングフレームワークをMesosに追加しようとすると、Mesosにアクセスするためのフレームワークスケジューラとエクゼキュータを実装する必要があります。
3.全体構造
Mesos-masterはシステム全体の中核であり、Mesosにアクセスする様々なフレームワークとスレーブを管理し、いくつかのポリシーに従ってスレーブ上のリソースをフレームワークに割り当てる役割を担っています。
mesos-slaveは、mesos-masterからのコマンドの受信と実行、ノード上のmesos-taskの管理、各タスクへのリソースの割り当てを行います。 メゾスレーブは自身のリソース量をメゾスマスタに送信し、メゾスマスタのAllocatorモジュールがどのフレームワークにリソースを割り当てるかを決定します。現在検討されているリソースはCPUとメモリの2種類で、つまり、メゾスレーブはCPU数とメモリ量をメゾスマスタに送信し、ユーザはCPU数とメモリ量をメゾスマスタに送信します。つまり、mesos-slaveはmesos-masterにCPU数とメモリ量を送信し、ユーザはジョブを投入する際に、タスクごとに必要なCPU数とメモリ量を指定する必要があります。 このように、mesos-slaveはタスクが実行されると、固定リソースを含むlinuxコンテナにタスクを投入し、リソース分離の効果を実現します。このため、mesosではzookeeperを利用しています。
フレームワークとは、Hadoop、Mesos などの外部のコンピューティングフレームワークを指します。これらのコンピューティングフレームワークは、mesos に登録することでアクセスできるようになり、mesos が統一的な管理とリソース割り当てを実行できるようになります。mesos は、アクセスできるフレームワークに、フレームワーク内のタスクのスケジューリングを担当するスケジューラモジュールを持たせる必要があります。フレームワークがmesosにアクセスしたい場合、mesosに登録し、mesosから割り当てられたリソースを得るために、フレームワーク自身のスケジューラを変更する必要があります。フレームワーク自身のスケジューラが、フレームワーク内のタスクにリソースを割り当てるようにするためです。つまり、mesosシステム全体は、2層のスケジューリングフレームワークを採用しています。***層は、mesosからフレームワークにリソースが割り当てられます。言い換えると、mesosシステムは2層のスケジューリングフレームワークを採用しています。***層ではmesosがフレームワークにリソースを割り当て、***層ではフレームワーク独自のスケジューラが内部タスクにリソースを割り当てます。現在、Mesos は C++、java、python の 3 言語で書かれたスケジューラをサポートしています。 さまざまなスケジューラへの統一されたアクセスを提供するために、Mesos は内部的に C++ で MesosSchedulerDriver を実装しており、フレームワークのスケジューラはこれを使用して Mesos-master と対話し、一連の機能を実行することができます。このドライバは、フレームワークのスケジューラが Mesos-master と対話するために使用できます。
エクゼキュータは主にフレームワーク内部でタスクを開始するために使用されます。フレームワークによってタスクの開始インターフェースや方法が異なるため、新しいフレームワークが mesos にアクセスしたい場合、フレームワークでタスクを開始する方法を mesos に伝えるためのエクゼキュータを記述する必要があります。様々なフレームワークに対して統一されたエクゼキュータの記述方法を提供するために、Mesos は C++ を使用して MesosExecutorDiver を内部で実装します。さまざまなフレームワークのための統一されたエクゼキュータの書き方を提供するために、Mesos は C++ で MesosExecutorDiver を実装し、フレームワークはこのドライバの関連インターフェースを介してタスクの開始方法を mesos に伝えることができます。
Mesosホームページ:
Mesosコード:
Mesos:データセンターにおけるきめ細かなリソース共有のためのプラットフォーム B. Hindman, A. Konwinski, M. Zaharia, A. Ghodsi, A.D. Joseph, R. Katz, S. Shenkerand I. Stoica, NSDI 2011, March 2011.




