Hadoop リソースマネージャを理解する
このステップでは、Hadoop Resource Manager の基本と、Hadoop エコシステムにおけるその役割について掘り下げます。
まず、デフォルトユーザを切り替えます。
su - hadoop
Hadoop Resource Manager は、Hadoop の YARN (Yet Another Resource Negotiator) アーキテクチャの重要なコンポーネントです。クラスタの計算リソースを管理し、利用可能なノード全体にアプリケーションをスケジューリングする責任があります。
まずは、Resource Manager のアーキテクチャを見てみましょう。
+------------------+
| Resource Manager|
+------------------+
| Scheduler |
| ApplicationsMaster
| NodeManager |
+------------------+
Resource Manager は主に 3 つのコンポーネントで構成されています。
- Scheduler:このコンポーネントは、事前に定義されたスケジューリング ポリシーに基づいて、さまざまな実行中のアプリケーションにリソースを割り当てる責任があります。
- ApplicationsManager:このコンポーネントは、ジョブの提出を受け付け、ApplicationMaster を実行するための最初のコンテナを交渉し、失敗時に ApplicationMaster コンテナを再起動するサービスを提供します。
- NodeManager:このコンポーネントは、クラスタ内の各ノードで実行され、Scheduler によって割り当てられたコンテナの起動と監視を担当します。
Resource Manager の機能をよりよく理解するために、簡単な例を見てみましょう。
クラスタにサンプルの MapReduce ジョブを送信します。
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 16 1000000
ジョブの状態を確認します。
yarn application -list
出力は以下のようになるはずです。
2024-03-23 22:48:44,206 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1711205220447_0001 QuasiMonteCarlo MAPREDUCE hadoop default RUNNING UNDEFINED
この例では、yarn コマンドを使用してクラスタに MapReduce ジョブを送信します。Resource Manager はジョブ要求を受け取り、ジョブを実行するために必要なリソース (コンテナ) を割り当てます。その後、提供されたコマンドを使用してジョブの状態を確認し、ログを表示することができます。