Hadoop YARNは、Hadoopのストレージユニット(HDFS(Hadoop Distributed File System))をさまざまな処理ツールで編成します。このトピックにまったく慣れていない方のために、YARNは「 Y そして に 他の R esource N エゴティエーター」。また、私たちを通過することをお勧めします そして Apache HadoopYARNの学習に進む前に。このブログの最後で、Hadoop YARNについての理解が明確になるように、ここで次のトピックについて説明します。
なぜYARN?
MRV1(MapReduceバージョン1)とも呼ばれるHadoopバージョン1.0では、MapReduceは処理機能とリソース管理機能の両方を実行していました。これは、シングルマスターであるジョブトラッカーで構成されていました。 Job Trackerは、リソースを割り当て、スケジューリングを実行し、処理ジョブを監視しました。それは、タスクトラッカーと呼ばれるいくつかの従属プロセスでマップとリデュースタスクを割り当てました。タスクトラッカーは定期的に進捗状況をジョブトラッカーに報告しました。
この設計では、単一のジョブトラッカーが原因でスケーラビリティのボトルネックが発生しました。IBMはその記事の中で、Yahoo!によれば、5000ノードのクラスターと40,000のタスクを同時に実行することで、このような設計の実際的な限界に達すると述べています。この制限は別として、MRV1では計算リソースの利用は非効率的です。また、HadoopフレームワークはMapReduce処理パラダイムのみに制限されるようになりました。
これらすべての問題を克服するために、YARNはYahooとHortonworksによって2012年にHadoopバージョン2.0で導入されました。 YARNの背後にある基本的な考え方は、リソース管理とジョブスケジューリングの責任を引き継ぐことによってMapReduceを軽減することです。 YARNは、Hadoopフレームワーク内で非MapReduceジョブを実行する機能をHadoopに提供し始めました。
以下のビデオもご覧いただけます。 専門家がYARNの概念とそのアーキテクチャについて詳細に話し合っています。
Hadoopヤーンチュートリアル| Hadoopヤーンアーキテクチャ|エドゥレカ
YARNの導入により、 完全に革命的でした。それははるかに柔軟で、効率的で、スケーラブルになりました。 2013年の第1四半期にYahooがYARNを稼働させたとき、YahooはHadoopクラスターのサイズを40,000ノードから32,000ノードに縮小するのに役立ちました。しかし、仕事の数は月に2600万に倍増しました。
HadoopYARNの概要
YARNの必要性について説明したので、Hadoopv2.0のコアコンポーネントを紹介します。 糸 。 YARNを使用すると、グラフ処理、インタラクティブ処理、ストリーム処理、バッチ処理などのさまざまなデータ処理方法で、HDFSに保存されているデータを実行および処理できます。したがって、YARNはHadoopをMapReduce以外の他のタイプの分散アプリケーションに開放します。
YARNを使用すると、ユーザーは次のようなさまざまなツールを使用して、要件に応じた操作を実行できます。 リアルタイム処理の場合、 ハイブ SQLの場合、 HBase NoSQLなどの場合。
リソース管理とは別に、YARNはジョブスケジューリングも実行します。 YARNは、リソースを割り当て、タスクをスケジュールすることにより、すべての処理アクティビティを実行します。 Apache Hadoop YARNアーキテクチャは、次の主要コンポーネントで構成されています。
- リソースマネージャー : マスターデーモンで実行され、クラスター内のリソース割り当てを管理します。
- ノードマネージャー: これらはスレーブデーモンで実行され、すべての単一データノードでタスクを実行します。
- アプリケーションマスター: 個々のアプリケーションのユーザージョブライフサイクルとリソースニーズを管理します。ノードマネージャと連携して動作し、タスクの実行を監視します。
- コンテナ: 単一ノード上のRAM、CPU、ネットワーク、HDDなどを含むリソースのパッケージ。
YARNのコンポーネント
YARNはHadoopエコシステムの頭脳と見なすことができます。以下の画像は、YARNアーキテクチャを表しています。
ザ・ 最初のコンポーネント YARNアーキテクチャのは、
リソースマネージャー
- それは資源配分の究極の権威です 。
- 処理要求を受信すると、それに応じて要求の一部を対応するノードマネージャーに渡し、そこで実際の処理が行われます。
- これはクラスターリソースのアービトレーターであり、競合するアプリケーションに使用可能なリソースの割り当てを決定します。
- 容量の保証、公平性、SLAなどのさまざまな制約に対して、すべてのリソースを常に使用し続けるなど、クラスターの使用率を最適化します。
- これには2つの主要なコンポーネントがあります。a)スケジューラーb)アプリケーションマネージャ
a)スケジューラー
cassandra列ファミリーとテーブル
- スケジューラーは、容量やキューなどの制約を受けて、実行中のさまざまなアプリケーションにリソースを割り当てる責任があります。
- ResourceManagerでは純粋なスケジューラと呼ばれます。つまり、アプリケーションのステータスの監視や追跡は実行されません。
- アプリケーション障害またはハードウェア障害が発生した場合、スケジューラは失敗したタスクの再開を保証しません。
- アプリケーションのリソース要件に基づいてスケジューリングを実行します。
- プラグイン可能なポリシープラグインがあり、さまざまなアプリケーション間でクラスターリソースを分割します。そのようなプラグインは2つあります。 キャパシティスケジューラ そして フェアスケジューラ 、現在ResourceManagerでスケジューラとして使用されています。
b)アプリケーションマネージャー
- それは仕事の提出を受け入れる責任があります。
- アプリケーション固有のアプリケーションマスターを実行するために、リソースマネージャーから最初のコンテナーをネゴシエートします。
- クラスター内でのアプリケーションマスターの実行を管理し、障害時にアプリケーションマスターコンテナーを再起動するためのサービスを提供します。
に来る 2番目のコンポーネント これは:
ノードマネージャー
- Hadoopクラスター内の個々のノードを処理し、特定のノードでユーザージョブとワークフローを管理します。
- リソースマネージャーに登録し、ノードのヘルスステータスとともにハートビートを送信します。
- その主な目標は、リソースマネージャーによって割り当てられたアプリケーションコンテナーを管理することです。
- ResourceManagerで最新の状態に保たれます。
- アプリケーションマスターは、アプリケーションを実行するために必要なすべてのものを含むコンテナー起動コンテキスト(CLC)を送信することにより、ノードマネージャーに割り当てられたコンテナーを要求します。ノードマネージャは、要求されたコンテナプロセスを作成し、それを開始します。
- 個々のコンテナのリソース使用量(メモリ、CPU)を監視します。
- ログ管理を実行します。
- また、リソースマネージャーの指示に従ってコンテナーを強制終了します。
ザ・ 3番目のコンポーネント Apache Hadoop YARNのは、
アプリケーションマスター
- アプリケーションは、フレームワークに送信される単一のジョブです。このような各アプリケーションには、フレームワーク固有のエンティティである一意のアプリケーションマスターが関連付けられています。
- これは、クラスター内でのアプリケーションの実行を調整し、障害を管理するプロセスです。
- そのタスクは、リソースマネージャーからリソースをネゴシエートし、ノードマネージャーと連携してコンポーネントタスクを実行および監視することです。
- ResourceManagerから適切なリソースコンテナをネゴシエートし、それらのステータスを追跡し、進行状況を監視する責任があります。
- 開始されると、定期的にハートビートをResource Managerに送信して、正常性を確認し、リソース要求の記録を更新します。
ザ・ 4番目のコンポーネント は:
コンテナ
- これは、単一ノード上のRAM、CPUコア、ディスクなどの物理リソースのコレクションです。
- YARNコンテナーは、コンテナーライフサイクル(CLC)であるコンテナー起動コンテキストによって管理されます。このレコードには、環境変数のマップ、リモートでアクセス可能なストレージに格納されている依存関係、セキュリティトークン、ノードマネージャサービスのペイロード、およびプロセスの作成に必要なコマンドが含まれています。
- 特定のホストで特定の量のリソース(メモリ、CPUなど)を使用する権限をアプリケーションに付与します。
YARNでの申請書の提出
画像を参照して、HadoopYARNのアプリケーション送信に関連する手順を確認してください。
1)ジョブを送信する
2)アプリケーションIDを取得する
3)アプリケーション提出コンテキスト
4 a)コンテナを起動します打ち上げ
b)アプリケーションマスターを起動します
5)リソースの割り当て
6 a)コンテナ
b)起動
HadoopYARNのアプリケーションワークフロー
与えられた画像を参照し、Apache HadoopYARNのアプリケーションワークフローに関連する次の手順を参照してください。
- クライアントが申請書を提出する
- Resource Managerは、ApplicationManagerを起動するためのコンテナを割り当てます
- ApplicationManagerはResourceManagerに登録します
- Application Managerは、ResourceManagerにコンテナーを要求します
- ApplicationManagerはNodeManagerにコンテナを起動するように通知します
- アプリケーションコードはコンテナ内で実行されます
- クライアントはリソースマネージャー/アプリケーションマネージャーに連絡して、アプリケーションのステータスを監視します
- ApplicationManagerがResourceManagerから登録解除されます
Apache Hadoop YARNがわかったので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaビッグデータHadoop認定トレーニングコースは、小売、ソーシャルメディア、航空、観光、金融の各ドメインでリアルタイムのユースケースを使用して、学習者がHDFS、Yarn、MapReduce、Pig、Hive、HBase、Oozie、Flume、Sqoopのエキスパートになるのに役立ちます。
質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。