バージョンアップ情報
Apache Mesos情報
Apache Mesosとは
Apache Mesosは、カリフォルニア大学バークレー校で開発されたコンピュータ・クラスターのリソース管理を行なうためのソフトウェアで、現在はApacheコミュニティによって継続して開発されています。同じ用途として使用されるソフトウェアとしてはYARN(Yet Another Resource Negotiator)があります。
Apache Hadoop 2.0以前ではHadoopクラスターのリソース管理は独立したコンポーネントではありませんでした。これが2.0からは、YARNとして独立したコンポーネントとなりました。このコンポーネント化によってユーザはYARN以外のリソース管理ソフトウェアを選択することができるようになりました。
そこで注目されたのがMesosという新しいリソース管理ソフトウェアです。
主な特徴
Apache Mesosは以下のような特徴をもっています。
Apache Mesosのアーキテクチャ
Mesosは、大きく分けてリソースの管理、割り当てを行なうMasterプロセスとFramework(Mesos上で動くアプリケーションをFrameworkと呼びます)側と連動して動くAgentデーモンの二つに分かれています。
Masterプロセスは複数ノードで構成されるAgent上のデーモンと連携してリソースの割り当てを行います。Masterプロセスは1つであることから単一障害点にならないようにZookeeperを使って冗長構成にすることが推奨されています。
AgentはSchedulerとExecutorの2つのコンポーネントから成っています。SchedulerはMasterプロセスが提供(offer)するリソースの登録管理を主に行い、ExecutorはFrameworkのタスクの実行を管理しています。
Apache MesosとYARNの違い
YARNがHadoopクラスターのリソース管理を目的として作られたソフトウェアであるのに対して、Mesosは汎用的にさまざまなアプリケーションのリソース管理を目的として作られました。
YARNは元々Hadoopの一部の機能であったことからJava言語で記述されています(HadoopはJava言語で記述されたソフトウェアです)。一方、MesosはC++言語で記述されたソフトウェアです。
C++で書かれていることでLinuxのネイティブ機能への親和性が高く、cgroupを使ってマシンリソースの制御を行っています。一方、YARNはLinuxのプロセスを利用してリソース管理を行っています。YARNがメモリのスケジューリング(管理)を行なうのに対してMesosはメモリ以外に、CPU、(I/O、File system)のスケジューリングも行います。
Mesosは、Hadoopだけでなく、MPIやMicrosoftのHadoop対抗馬であるDryadのリソース管理マネージャーとして利用することも出来ます。更に、JavaやPython、その他の言語で書かれた独自のアプリケーション(Framework)をMesosで管理することもできます。ただし、Mesosでリソース管理するためには開発するアプリケーションをMesosのFramework開発ガイドに則って作成する必要があります。
MesosとYARNのリソース管理の大きな違いは、YARNがリソースの割り当てを一方的に決定するのに対して、MesosはOffer/Rejectモデルを採用していることです。MesosではMasterとなるプロセスが空いているマシンリソースをFrameworkと連動して動いているAgentデーモンに対してOfferします。
Framework側では実行するタスクに必要なリソースがOfferされたリソースで満たされているのであればAgentを通じて使用するリソースをMasterに通知して、実際のマシンリソースの割り当てを行ってもらいタスクを実行します。割り当てられたタスクに対してMasterからOfferされたリソースが不十分な場合にはAgentはそのOfferをRejectします。そして他のタスクが終了して空きリソースが増えた際に再度Offerが来るまで待ちます(delay scheduling)。
Apache Mesos上で動くFramework
下記のページにMesosのFrameworkに則って作成されたアプリケーションの一覧が掲載されています。
一覧からもわかるように、各分野においてMesos上で動くアプリケーションがすでに多く存在しています。
Mesosでは従来のHadoopで処理を行っていたようなバッチジョブを実行するFramework以外にも、常時稼働し続けるWebアプリケーションのような形態をとったFrameworkも実行することが可能です。
上記URLには各用途に合わせたアプリケーションをMesosのFrameworkに沿って開発するためのMeta Frameworkに該当するものが存在しています。例えば、常時稼働するWebアプリケーション向けにMarathonというFrameworkがあります。Marathonを使えばMarathon上に独自のWebアプリケーションを構築した上で、Mesosを使ったCluster構成下でリソースの制御を行なうことが可能です。
動作環境
Mesosは各種Linux(64bit)とmacOS(64bit)のOSで実行可能です。Mesosをソースからビルドするには、GCC4.8.1以上もしくはClang3.5以上が必須です。
MesosではLinux kernel 2.6.28 以上が必須ですが、Linux kernel 3.10以上において完全に独立したプロセス管理機能をサポートします。
また、Window上でも一部の制約が存在しますが、Mesosを稼働させることは可能です。
Apache Mesosのライセンス
MesosはApache License 2.0ライセンスのソフトウェアで、ユーザはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Apache Spark
アパッチ スパーク。Hadoopの後発として期待されるビッグデータ処理基盤です。
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。
-
サポート対象
Docker
ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。
-
サポート対象
Apache Hadoop
アパッチ ハドゥープ。Java言語で実装された大規模データの蓄積、分析を分散して処理するフレームワークです。