83

私は Apache Spark を初めて使用しますが、Spark が次の 3 種類のクラスターをサポートしていることを知りました。

  • スタンドアロン - Spark が独自のクラスターを管理することを意味します
  • YARN - Hadoop の YARN リソース マネージャーを使用する
  • Mesos - Apache の専用リソース マネージャー プロジェクト

まずはスタンドアローンでやってみようと思います。将来的には、大規模なクラスター (数百のインスタンス) を構築する必要があります。

どのクラスター タイプを選択すればよいですか?

4

5 に答える 5

77

Spark Standalone Manager : Spark に含まれているシンプルなクラスター マネージャーで、クラスターのセットアップを容易にします。デフォルトでは、各アプリケーションはクラスター内の使用可能なすべてのノードを使用します。

スタンドアロンおよび Mesos に対する YARNのいくつかの利点:

  1. YARNを使用すると、 YARNで実行されるすべてのフレームワーク間でクラスター リソースの同じプールを動的に共有し、一元的に構成できます。

  2. ワークロードの分類、分離、および優先順位付けのために、 YARNスケジューラーのすべての機能を利用できます。

  3. Spark スタンドアロン モードでは、各アプリケーションがクラスター内のすべてのノードでエグゼキューターを実行する必要があります。一方、YARN では、使用するエグゼキューターの数を選択します

  4. YARNは、リクエストでラックとマシンの局所性を直接処理するので便利です。

  5. 奇妙なことに、リソース要求モデルはMesosでは逆になっています。YARNでは、ユーザー(フレームワーク) が特定の仕様でコンテナーを要求し、地域の優先順位を指定します。Mesos では、リソースの「オファー」を取得し、独自のスケジューリング ポリシーに基づいてそれらを受け入れるか拒否するかを選択します。Mesos モデルは間違いなくより柔軟ですが、フレームワークを実装する人にとってはより多くの作業が必要なようです。

  6. 大規模な Hadoop クラスターが既に配置されている場合は、YARNを選択することをお勧めします。

  7. スタンドアロン マネージャでは、共有シークレットを使用して各ノードを構成する必要があります。Mesosのデフォルトの認証モジュールである Cyrus SASL は、カスタム モジュールに置き換えることができます。YARNには、認証、サービス レベルの承認、Web コンソールの認証、およびデータの機密性に対するセキュリティがあります。Hadoop 認証では、Kerberos を使用して、各ユーザーとサービスが Kerberos によって認証されていることを確認します。

  8. 高可用性は 3 つのクラスター マネージャーすべてによって提供されますが、Hadoop YARNは別の ZooKeeper Failover Controller を実行する必要はありません。

便利なリンク:

スパークドキュメンテーションページ

アギルデータの記事

于 2016-01-07T14:32:43.493 に答える
9

スタンドアロンは、他の人が述べたように、スパークのみのワークロードがある場合にのみ使用する必要があることは明らかです。

yarn と mesos の間で考慮すべきことの 1 つは、mapreduce とは異なり、spark ジョブはエグゼキューターを取得し、ジョブの存続期間全体にわたってそれを保持するという事実です。mapreduce のどこで、ジョブは有効期間にわたってマッパーとレデューサーを取得および解放できます。

ジョブの存続期間中に最初に取得したすべてのリソースを完全に利用しないスパーク ジョブを長時間実行している場合、それらのリソースを他のアプリと共有したい場合があり、Mesos または Spark 動的スケジューリングを介してのみ行うことができます。 . https://spark.apache.org/docs/2.0.2/job-scheduling.html#scheduling-across-applications したがって、ヤーンでは、スパークの動的割り当てを行う唯一の方法は、スパークが提供する動的割り当てを使用することです。Mesos が干渉する一方で、Yarn は干渉しません。繰り返しますが、この全体のポイントは、長時間実行される spark アプリケーションがあり、動的にスケールアップおよびスケールダウンしたい場合にのみ重要です。

于 2016-12-08T17:13:21.403 に答える
-2

Mesos にはより洗練されたスケジューリング設計があり、Spark などのアプリケーションが Mesos とネゴシエートできるようになっています。今日の多様なアプリケーションにより適しています。このサイトは本当に洞察に満ちていることがわかりました。

https://www.oreilly.com/ideas/a-tale-of-two-clusters-mesos-and-yarn

「... YARN は、Hadoop ジョブのスケジューリング用に最適化されています。Hadoop ジョブは、歴史的に (そして今でも一般的に) 実行時間が長いバッチ ジョブです。これは、YARN が長時間実行されるサービスや、短命の対話型クエリ (小さなクエリなど) 向けに設計されていないことを意味します。また、他の種類のワークロードをスケジュールすることは可能ですが、これは理想的なモデルではありません.MapReduce のリソース要求、実行モデル、およびアーキテクチャ要求は、長時間実行されるサービスの要求とは大きく異なります。 Web サーバーや SOA アプリケーション、または Spark や Storm のようなリアルタイムのワークロードとして...」

于 2018-07-03T17:06:02.927 に答える