Apache Mesos とは?

Apache Mesos

Apache Mesos最新情報

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

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

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

すべてを見る

更新日:2022-12-26

Apache Mesosの概要

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

TOPに戻る

Apache 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のタスクの実行を管理しています。

参考: http://mesos.apache.org/documentation/latest/architecture/

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)。

参考: http://mesos.apache.org/documentation/latest/architecture/#example-of-resource-offer

Apache Mesos上で動くFramework

下記のページにMesosのFrameworkに則って作成されたアプリケーションの一覧が掲載されています。

http://mesos.apache.org/documentation/latest/frameworks/

一覧からもわかるように、各分野においてMesos上で動くアプリケーションがすでに多く存在しています。

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

TOPに戻る

Apache Mesosの動作環境

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

TOPに戻る

Apache Mesosのライセンス

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

TOPに戻る

Apache Mesosのダウンロード

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

TOPに戻る

参考情報

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

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

TOPに戻る

Apache Mesosのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

・オープンソース年間サポートサービス

TOPに戻る

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

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

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

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