はじめに
Hadoop は、大規模データセットの分散ストレージと処理を行うための強力なオープンソースフレームワークです。Hadoop の中心には、クラスタ全体のリソースを管理および割り当てる責任を持つ YARN (Yet Another Resource Negotiator) コンポーネントがあります。このチュートリアルでは、Hadoop エコシステムにおける重要なコンポーネントである YARN リソースマネージャの適切な構成を確保する手順を探ります。
YARN リソースマネージャのはじめに
YARN (Yet Another Resource Negotiator) は、Apache Hadoop エコシステムのリソース管理およびジョブスケジューリングコンポーネントです。Hadoop クラスタ内のコンピューティングリソースを管理し、クラスタ上で実行されるさまざまなアプリケーションやサービスに割り当てる責任を持っています。
YARN リソースマネージャは、YARN アーキテクチャの中心的なコンポーネントであり、クラスタのリソースを管理し、利用可能なリソース上でアプリケーションをスケジューリングする責任を持っています。Hadoop クラスタ上で実行したいクライアントアプリケーションが連絡する主要なポイントです。
YARN リソースマネージャの主要な責務には以下が含まれます。
リソース管理
- クラスタ内のリソース(CPU、メモリ、ストレージなど)の可用性を監視する
- アプリケーションのリソース要件に基づいてリソースを割り当てる
- リソース使用ポリシーとクォータを施行する
アプリケーションスケジューリング
- クライアントからのアプリケーション要求を受け取り、キューに登録する
- 利用可能なクラスタリソース上でアプリケーションをスケジューリングする
- 実行中のアプリケーションの実行状況を監視する
- 必要に応じてアプリケーションの障害を処理し、再スケジューリングする
高可用性
- 高可用性および耐障害性のあるリソース管理サービスを提供する
- 障害発生時にリソースマネージャのシームレスなフェイルオーバーを可能にする
YARN リソースマネージャの適切な構成と動作を確保するには、そのアーキテクチャ、構成パラメータ、およびデプロイメントと管理のベストプラクティスを理解することが不可欠です。
YARN リソースマネージャの構成
YARN リソースマネージャを構成するには、Hadoop インストール内の関連する構成ファイルを変更する必要があります。YARN リソースマネージャの主要な構成ファイルは yarn-site.xml です。
主要な構成パラメータ
以下は、YARN リソースマネージャに関する最も重要な構成パラメータの一部です。
| パラメータ | 説明 |
|---|---|
yarn.resourcemanager.hostname |
YARN リソースマネージャのホスト名 |
yarn.resourcemanager.address |
YARN リソースマネージャのアドレスとポート |
yarn.resourcemanager.scheduler.address |
YARN スケジューラのアドレスとポート |
yarn.resourcemanager.webapp.address |
YARN リソースマネージャの Web UI のアドレスとポート |
yarn.resourcemanager.resource-tracker.address |
YARN リソーストラッカーのアドレスとポート |
yarn.resourcemanager.admin.address |
YARN リソースマネージャの管理インターフェイスのアドレスとポート |
yarn.resourcemanager.scheduler.class |
YARN スケジューラに使用するクラス |
yarn.scheduler.maximum-allocation-mb |
各コンテナに割り当てる最大メモリ量 |
yarn.scheduler.maximum-allocation-vcores |
各コンテナに割り当てる最大仮想コア数 |
構成例
以下は、yarn-site.xml 構成ファイルの例です。
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager.example.com</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>resourcemanager.example.com:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>resourcemanager.example.com:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>resourcemanager.example.com:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>resourcemanager.example.com:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>resourcemanager.example.com:8033</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>4</value>
</property>
</configuration>
構成ファイルに変更を加えた後は、YARN リソースマネージャを再起動することを忘れないでください。
YARN リソースマネージャのセットアップの検証
YARN リソースマネージャを構成した後、正しく動作していることを確認するためにセットアップを検証することが重要です。YARN リソースマネージャのセットアップを検証するために実行できる手順を以下に示します。
YARN リソースマネージャの状態を確認する
yarn rmadmin コマンドを使用して、YARN リソースマネージャの状態を確認できます。
yarn rmadmin -getServiceState
このコマンドは、YARN リソースマネージャの現在の状態(高可用性モードで実行している場合は ACTIVE または STANDBY など)を返すはずです。
YARN リソースマネージャの Web UI を確認する
Web ブラウザで構成されたアドレスとポートにアクセスすることで、YARN リソースマネージャの Web UI にアクセスできます。Web UI には、利用可能なリソース、実行中のアプリケーションなど、クラスタに関する情報が表示されるはずです。
テストアプリケーションを送信する
YARN リソースマネージャが正しく機能していることを確認するために、クラスタにテストアプリケーションを送信できます。たとえば、yarn jar コマンドを使用して MapReduce ジョブを送信できます。
yarn jar /path/to/hadoop-mapreduce-examples.jar wordcount /input/path /output/path
これにより、WordCount MapReduce ジョブが YARN クラスタに送信され、YARN リソースマネージャの Web UI でジョブの進行状況と完了を監視できます。
YARN リソースマネージャのログを確認する
セットアップに問題があることを示すエラーや警告がないか、YARN リソースマネージャのログを確認することもできます。ログは通常、$HADOOP_LOG_DIR ディレクトリにあります。
tail -n 100 $HADOOP_LOG_DIR/yarn-*-resourcemanager-*.log
これらの手順に従うことで、YARN リソースマネージャが適切に構成され、期待どおりに機能していることを確認できます。
まとめ
このチュートリアルで概説された手順に従うことで、Hadoop クラスタ内の YARN リソースマネージャを適切に構成する方法を学ぶことができます。これにより、効率的なリソース管理、パフォーマンスの向上、および安定した Hadoop 環境が保証されます。YARN リソースマネージャの適切な構成を理解することは、堅牢でスケーラブルな Hadoop インフラストラクチャを維持する上で重要な側面です。



