[ビッグデータday16]-ヤーン[ヤーンのアーキテクチャとワークフロー、ヤーンスケジューラ、ヤーンの一般的なパラメータ設定]

糸資源スケジューリング

1.糸の紹介:

YarnはHadoopクラスターのリソース管理システムモジュールです。YarnモジュールはHadoop2.0から導入されました。Yarnはさまざまなコンピューティングフレームワークのリソース管理とスケジューリングを提供できます。主にクラスター内のリソース(主にさまざまなサーバー)の管理に使用されます。 。CPU、メモリ、ディスク、ネットワークIOなどのハードウェアリソース)およびyarnで実行されるさまざまなタスクのスケジューリング。

 yarn核心出发点是为了分离资源管理与作业监控,实现分离的做法是拥有一个全局的资源管理(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM) 

要約すると、一文は次のようになります:糸は主にリソースのスケジューリング、タスクの管理などに使用されます。

スケジューリングは2つのレベルに分かれています。

  • 第1レベルのディスパッチ管理:

    コンピューティングリソース管理(CPU、メモリ、ネットワークIO、ディスク)

  • 二次スケジューリング管理:

    タスクの内部計算モデル管理(AppMasterの洗練されたタスク管理)

ヤーンの公式ウェブサイトドキュメントの説明:

http://hadoop.apache.org/docs/r2.7.5/hadoop-yarn/hadoop-yarn-site/YARN.html

糸クラスターの監視および管理インターフェース:

http:// node01:8088 / cluster

jobHistoryServerビューインターフェイス:

http:// node01:19888 / jobhistory

2.ヤーンの主要コンポーネント紹介と機能

YARN总体上是Master/Slave结构、主にResourceManager、NodeManager、ApplicationMaster、Containerなどのいくつかのコンポーネントで構成されています。

  • ResourceManager(RM)
    は、クライアント要求の処理、および各NMでのリソースの統合管理とスケジューリングを担当します。アイドル状態のコンテナをApplicationMasterに割り当てて、その実行ステータスを実行および監視します。これは主に、スケジューラとアプリケーションマネージャの2つのコンポーネントで構成されています。
    1. スケジューラー(スケジューラー)スケジューラーは、容量やキューなどの制約に従って、実行中の各アプリケーションにシステム内のリソースを割り当てます。スケジューラーは、各アプリケーションのリソース要件に従ってのみリソースを割り当てます。リソース割り当て単位はコンテナーです。Shcedulerは、アプリケーションのステータスを監視または追跡する責任を負いません。つまり、スケジューラーは、アプリケーションのリソース要件とクラスターマシンのリソース状況に応じて、コンテナーにカプセル化されたリソースをアプリケーションに割り当てます。
    2. アプリケーションマネージャー:アプリケーションマネージャーは、アプリケーションの送信、ApplicationMasterを起動するためのスケジューラーとのリソースネゴシエーション、ApplicationMasterの実行ステータスの監視、失敗した場合の再起動など、システム全体のすべてのアプリケーションの管理を担当します。特定のコンテナの進捗状況とステータスもその責任です。
  • NodeManager(NM)
    NodeManagerは、各ノードのリソースおよびタスクマネージャーです。ノードでのリソース使用量と各コンテナーの実行ステータスをResourceManagerに定期的に報告します。同時に、ApplicationMasterからコンテナーの開始/停止要求を受信して​​処理します。
  • ApplicationMaster(AM)
    ユーザーによって送信されたすべてのアプリケーションには** ApplicationMaster **が含まれます。これは、アプリケーションの監視、アプリケーションの実行ステータスの追跡、失敗したタスクの再開などを担当します。ApplicationMasterはアプリケーションフレームワークであり、ResourceManagerとリソースを調整し、NodeManagerと連携してタスクの実行と監視を完了します。
  • コンテナ
    コンテナはYARNのリソース抽象化であり、メモリ、CPU、ディスク、ネットワークなどのノード上の多次元リソースをカプセル化します。ApplicationMasterがResourceManagerからリソースを申請すると、ResourceManagerはApplicationMasterがContainerExpressedを使用するためのリソースを返します。 。

3.ヤーンのアーキテクチャとワークフロー

ここに画像の説明を挿入

ここに画像の説明を挿入

4.ヤーンスケジューラ

ヤーンは主にリソーススケジューリング、タスク割り当て、その他の機能に使用されることは誰もが知っています。したがって、Hadoopでは、タスクスケジューリングに使用されるアルゴリズムに注意が必要です。Hadoopはいくつかのタスクスケジューリング方法とさまざまなシナリオをサポートしています。別のタスクスケジューラを使用する必要があります。 。

第一种调度器:FIFO Scheduler(队列调度)

タスクを送信順にキューに配置します。これは先入れ先出しキューです。リソース割り当てが実行されると、リソースは最初にキューの最上位タスクに割り当てられ、次に最上位タスクが満たされます。次のタスク。1つの割り当てなど。

FIFOスケジューラーは、最も単純で理解しやすいスケジューラーであり、構成は必要ありませんが、共有クラスターには適していません。大きなタスクはすべてのクラスターリソースを占有する可能性があり、その結果、他のタスクがブロックされます。

ここに画像の説明を挿入

第二种调度器:Capacity Scheduler(容量调度器,apache版本默认使用的调度器)

キャパシティスケジューラを使用すると、複数の組織でクラスター全体を共有でき、各組織はクラスターのコンピューティング能力の一部を取得できます。各組織に専用のキューを割り当ててから、特定のクラスターリソースを各キューに割り当てることにより、クラスター全体で複数のキューを設定することにより、複数の組織にサービスを提供できます。さらに、キューを垂直に分割できるため、組織内の複数のメンバーがキューリソースを共有できます。キュー内では、リソーススケジューリングは先入れ先出し(FIFO)戦略を使用します。

ここに画像の説明を挿入

第三种调度器:Fair Scheduler(公平调度器,CDH版本的hadoop默认使用的调度器)

Fairスケジューラーの設計目標は、すべてのアプリケーションに公平なリソースを割り当てることです(公平性の定義はパラメーターによって設定できます)。公平なスケジューリングは、複数のキュー間でも機能します。たとえば、2人のユーザーAとBがいて、それぞれにキューがあるとします。Aがジョブを開始し、Bにタスクがない場合、Aはすべてのクラスターリソースを取得します。Bがジョブを開始すると、Aのジョブは引き続き実行されますが、しばらくすると、2つのタスクはそれぞれクラスターリソースの半分を取得します。この時点でBが2番目のジョブを開始し、他のジョブがまだ実行中の場合、BキューのリソースをBの最初のジョブと共有します。つまり、Bの2つのジョブはクォータークラスターリソースに使用され、Aのジョブは引き続き使用されます。クラスターのリソースの半分に使用される結果、リソースは最終的に2人のユーザー間で均等に共有されます

ここに画像の説明を挿入

使用するスケジューラーはyarn-site.xmlによって異なります

yarn.resourcemanager.scheduler.class このプロパティの構成

5.糸共通パラメータ設定について

最小メモリを割り当てるようにコンテナを設定します

糸.scheduler.minimum-allocation-mb1024アプリケーションコンテナに割り当てられた最小メモリ

コンテナによって割り当てられる最大メモリを設定します

yen.scheduler.maximum-allocation-mb8192アプリケーションコンテナに割り当てられた最大メモリ

コンテナの仮想コアの最小数を設定ます

yen.scheduler.minimum-allocation-vcores1各コンテナーにデフォルトで割り当てられる仮想コアの最小数

各コンテナの仮想コアの最大数を設定します

yen.scheduler.maximum-allocation-vcores32各コンテナーが割り当てることができる仮想コアの最大数

NodeManagerが割り当てることができるメモリサイズを設定します

糸.nodemanager.resource.memory-mb8192ノードマネージャが割り当てることができる最大メモリサイズ。デフォルトは8192Mbです。

各マシンのメモリ使用量を定義します

糸.nodemanager.resource.memory-mb8192

使用できるスワップスペースのサイズを定義します

スワップスペースとは、メモリ使用量に使用されるハードディスクのことです。ここで指定するのは、nodemanagerの2.1倍です。

糸.nodemanager.vmem-pmem-ratio2.1

おすすめ

転載: blog.csdn.net/qq_38454176/article/details/115347995