OSS紹介

Apache Mesos

Apache Mesos最新情報

NRIのOpenStandiaが提供する Apache Mesos最新情報

Apache Mesosの保守サポートサービスの内容はこちら Apache Mesosの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Apache Mesos最新トピック

すべてを見る

Apache Mesosバージョンアップ情報

すべてを見る

更新日:2017-04-26

Apache Mesosの概要

Apache Mesosは、カリフォルニア大学バークレー校で開発されたコンピュータ・クラスターのリソース管理を行なうためのソフトウェアで、現在はApacheコミュニティによって継続して開発されています。同じ用途として使用されるソフトウェアとしてはYARNがあります。
Apache Hadoop2.0以前ではHadoopクラスターのリソース管理は独立したコンポーネントではありませんでした。これが2.0からは、YARN(Yet Another Resource Negotiator)として独立したコンポーネントとなりました。このコンポーネント化によってユーザはYARN以外の選択肢を選ぶことができるようになりました。
そこで注目されたのがMesosという新しいリソース管理ソフトウェアです。

TOPに戻る

Apache Mesosの主な特徴

Apache Mesosは以下のような特徴をもっています。

Apache Mesosのアーキテクチャ

Mesosは、大きく分けてリソースの管理、割当を行なうMasterプロセスとFramework(Mesos上で動くアプリケーションをFrameworkと呼びます)側と連動して動くSlaveデーモンの二つに分かれています。
Masterプロセスは複数ノードで構成されるSlave上のデーモンと連携してリソースの割当を行います。Masterプロセスは1つであることからSPF(単一障害点)にならないようにZookeeperを使って冗長構成を取ることが推奨されています。
Slaveは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と連動して動いているSlaveデーモンに対してOfferします。
Framework側では実行するタスクに必要なリソースがOfferされたリソースで満たされているのであればSlaveを通じて使用するリソースをMasterに通知して、実際のマシンリソースの割当を行ってもらいタスクを実行します。割り当てられたタスクに対してMasterからOfferされたリソースが不十分な場合にはSlaveはそのOfferをRejectします。そして他のタスクが終了して空きリソースが増えた際に再度Offerが来るまで待ちます(delay scheduling)。

Apache Mesos上で動くFramework

下記のページにMesosのFrameworkに則って作成されたアプリケーションの一覧が掲載されています。一覧からもわかるように、各分野においてMesos上で動くアプリケーションがすでに多く存在しています。

http://mesos.apache.org/documentation/latest/frameworks/
Mesosでは従来のHadoopで処理を行っていたようなバッチジョブを実行するFramework以外にも、常時稼働し続けるWebアプリケーションのような形態をとったFrameworkも実行することが可能です。
上記URLには各用途に合わせたアプリケーションをMesosのFrameworkに沿って開発するためのMeta Frameworkに該当するものが存在しています。例えば、常時稼働するWebアプリケーション向けにMarathonというFrameworkがあります。Marathonを使えばMarathon上に独自のWebアプリケーションを構築してた上で、Mesosを使ったCluster構成下でリソースの制御を行なうことが可能です。

TOPに戻る

Apache Mesosのライセンス

MesosはApache License 2.0ライセンスのソフトウェアで、ユーザはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

TOPに戻る

Apache Mesosの動作環境

Mesosは各種Linux(64bit)とMacOSX(64bit)のOSで実行可能です。Mesosをソースからビルドするには、GCC4.8.1もしくはClang3.5以上が必須です。
MesosではLinux kernel 3.10以上において完全に独立したプロセス管理機能をサポートしています。
また、Window上でも一部の制約が存在しますが、Mesosを稼働させることは可能です。
http://mesos.apache.org/documentation/latest/windows/

TOPに戻る

Apache Mesosのダウンロード

http://mesos.apache.org/downloads/

TOPに戻る

Apache Mesosの関連情報

Apache Mesosの公式サイト
http://mesos.apache.org/

Apache Mesosのドキュメント
http://mesos.apache.org/documentation/latest/

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
?
<--!-->