3ノードのSpark/Hadoopクラスターでは、どのスケジューラー(マネージャー)が効率的に機能しますか?現在、スタンドアロンマネージャーを使用していますが、sparkジョブごとに、回避したいすべてのリソースパラメーター(コア、メモリなど)を明示的に指定する必要があります。Yarnも試しました。 、ただし、スタンドアロンマネージャーよりも実行速度が10倍遅くなります。
Mesosは役に立ちますか?
クラスターの詳細: Spark 1.2.1およびHadoop2.7.1
Apache Sparkは次のクラスターモードで実行されます
ローカルモードは、オペレーティングシステムでSparkアプリケーションを実行するために使用されます。このモードは、Sparkアプリケーションの開発とテスト。
スタンドアロン、Yarn、Mesos、Kubernetesモードなどのモードは分散環境です。分散環境では、コンピューティングリソースを管理するためにリソース管理が非常に重要です。したがって、コンピューティングリソースを効率的に管理するには、優れたリソース管理システムまたはリソーススケジュールが必要です。
Standaloneは、小さなsparkクラスターには適していますが、大きなクラスターには適していません(実行のオーバーヘッドがあります) sparkクラスターノードのデーモン(マスター+スレーブ))。これらのデーモンには専用のリソースが必要です。したがって、大規模な実稼働クラスターにはスタンドアロンは推奨されません。スタンドアロンはSparkアプリケーションであり、汎用クラスターマネージャーではありません。実行するさまざまな作業負荷があるエンタープライズコンテキストでは、sparkスタンドアロンクラスターマネージャーは適切な選択ではありません。
YARNおよびMesosモードの場合、Sparkはアプリケーションとして実行され、デーモンのオーバーヘッドはありません。パフォーマンスとスケーラビリティを向上させるには、YARNまたはMesosのいずれかを使用します。YARNとMesosはどちらも汎用の分散リソース管理であり、MapReduce、Spark、Flink、Stormなどのさまざまな作業負荷をコンテナオーケストレーションでサポートします。実行に適しています。大規模なエンタープライズプロダクションクラスター。
YARNとMesosの間では、YARNはHadoopの作業負荷用に特別に設計されていますが、Mesosはあらゆる種類の作業負荷用に設計されています。 YARNはアプリケーションレベルのスケジューラーであり、MesosはOSレベルのスケジューラーです。すでにHadoopクラスター(Apache/CDH/HDP)を実行している場合は、YARNを使用することをお勧めします。まったく新しいプロジェクトの場合は、Mesos(Apache、Mesosphere)を使用することをお勧めします。 Apache Myriadと呼ばれるプロジェクトを使用して、両方を同じ場所で使用するための規定もあります。
Kubernetes-コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースシステム。このモードは実験的な状態です。そのため、コンテナ化された方法でSparkアプリケーションを実行するために使用されました。
Nomad-これは、Sparkアプリケーションを実行するための別のオープンソースシステムです。このクラスターマネージャーは、=によって公式にサポートされていません。 Sparkクラスターマネージャーとしてのプロジェクト。
上記のすべてのモードの中で、ApacheMesosはより優れたリソース管理機能を備えています。
このリンクを参照してください。YarnvsMesosに関する専門知識からの詳細な説明が含まれています。 http://www.quora.com/How-does-YARN-compare-to-Mesos
3ノードのクラスターでは、スタンドアロンマネージャーを使用するだけで、追加のプロセスのオーバーヘッドは報われません。