HadoopYarnアーキテクチャとそのコンポーネントとは

公開: 2020-02-10

目次

HadoopYARNはじめに

YARNはHadoopv2.0の主要コンポーネントです。 YARNは、HDFSに保存されているバッチ処理、ストリーム処理、インタラクティブ処理、グラフ処理のデータを処理および実行できるようにすることで、Hadoopを開くのに役立ちます。 このように、MapReduce以外のさまざまなタイプの分散アプリケーションを実行するのに役立ちます。

YARNアーキテクチャでは、処理層はリソース管理層から分離されています。 アプリケーションマネージャーとリソースマネージャーの間に分割を作成することは、Hadoop1.0のバージョンでのジョブトラッカーの責任でした。 YARNを使用すると、HDFS(Hadoop分散ファイルシステム)に保存されているデータを、バッチ処理、ストリーム処理、インタラクティブ処理、グラフ処理などのさまざまなデータ処理エンジンで処理および実行できます。 したがって、システムの効率はYARNを使用することで向上します。 アプリケーションの処理は、YARNでさまざまなコンポーネントを介してスケジュールされます。 最適な利用のために、さまざまな種類のリソースも段階的に割り当てられます。 YARNは、大量のデータの処理に非常に必要な、利用可能なリソースの適切な使用に大いに役立ちます。

なぜYARN?

MapReduceは、リソース管理と処理の機能を実行します。 Hadoop v1.0は、MapReduceバージョン1(MRV1)とも呼ばれます。 JobTrackerのマスターは1人だけでした。

このプログラムが学生のキャリアをどのように変えたかを信じられないでしょう

以前のバージョンのHadoopであるHadoopバージョン1.0は、MapReduceバージョン1(MRV1)とも呼ばれ、プロセスとリソース管理の両方のタスクを単独で実行するために使用されます。 それはすべてを担当するジョブトラッカーモジュールを持っています。 したがって、アプリケーションにリソースを割り当て、需要のスケジューリングを実行し、システムでの処理のジョブを監視するのは単一のマスターです。 Hadoopバージョン1.0は、タスクを削減し、タスクトラッカーと呼ばれるいくつかのサブプロセスにマップを割り当てます。 Task Trackerは、プロセスの進行状況も定期的に報告します。 しかし、主な問題はそれではありません。問題は、すべての人に単一のマスターを設計することであり、ボトルネックの問題が発生します。 また、計算リソースの使用率は非効率的でした。 したがって、このバージョンのHadoopではスケーラビリティが問題になりました。 しかし、明るい面として、この問題は、YahooとHortonworksによって2012年に導入された後継のHadoopバージョン2.0の重要なコアコンポーネントであるYARNによって解決されています。 この救済の背後にある基本的な考え方は、単一のマスターではなく、MapReduceをリソース管理およびジョブスケジューリングから分離することです。 したがって、YARNは現在ジョブスケジューリングとリソース管理を担当しています。

Hadoop 2.0では、アプリケーションマスターとリソースマネージャーの概念がYARNによって導入されました。 Hadoopのクラスター全体で、リソースの使用率はResourceManagerによって監視されます。

YARNには、非常に有名になったいくつかの機能があります。それは次のとおりです。

  1. マルチテナンシー: YARNは、バッチ処理エンジン、ストリーム処理エンジン、インタラクティブ処理エンジン、グラフ処理エンジンなどの複数のデータ処理エンジンへのアクセスを許可しています。 これにより、会社にマルチテナンシーのメリットがもたらされました。
  2. クラスターの使用率:クラスターは、YARNの助けを借りてHadoopで動的に使用されるため、最適化された方法で使用されます。
  3. 互換性:YARNは、既存のmap-reduceアプリを使用するため、Hadoopの最初のバージョンであるHadoop1.0とも互換性があります。 したがって、YARNはHadoop1.0でも使用できます。
  4. スケーラビリティ:何千ものクラスターとノードが、YARNのResource Managerのスケジューラーによって、Hadoopによって管理および拡張されることが許可されています。

YARNのコンポーネント

  • 容器:

コンテナでは、単一ノード上のディスク、CPUコア、RAMなどの物理リソースを見つけることができます。 Container Launch Context(CLC)は、コンテナーを呼び出すために使用されます。 Container Launch Context(CLC)と呼ばれるレコードとして維持される依存関係、セキュリティトークン、環境変数に関するデータ。

  1. 特定のホストでは、アプリケーションはCPUとメモリから指定されたメモリのみを使用できます。 この指定された量のメモリは、コンテナによって許可が付与された後にのみ使用できます。
  2. Container Launch Contextは、YARNコンテナを管理するために使用されます。 コンテナライフサイクル(CLC)とも呼ばれます。 プロセスの作成に必要なコマンドは、このレコードに保存されます。 また、Node Managerサービス、セキュリティトークン、依存関係、環境変数のマップのペイロードも保存されます。
  • アプリケーションマスター:

フレームワークでは、単一のジョブが送信されると、それはアプリケーションと呼ばれます。 アプリケーションの進行状況の監視、アプリケーションのステータスの追跡、リソースマネージャーとのリソースのネゴシエーションは、アプリケーションマネージャーの責任です。 実行するアプリケーションのすべての要件は、Container Launch Context(CLC)を送信することによって実行されます。 アプリケーションマスターは、ノードマネージャーからコンテナーを要求することにより、コンテナー起動コンテキスト(CLC)を投稿します。 リソースマネージャーは、アプリケーションの開始後にヘルスレポートを受け取ることがあります。

  • ノードマネージャー:

ノードマネージャーは、Hadoopクラスター内の個々のノードを処理し、特定の各ノードに関連するコンテナーも管理します。 リソースマネージャーに登録され、各ノードのヘルスステータスをリソースマネージャーに送信して、ノードプロセスがリソースの操作を終了したかどうかを示します。 その主な目標は、リソースマネージャーによって割り当てられた特定の各ノードコンテナーを管理することです。 ノードマネージャは、アプリケーションマスターから要求されたときにコンテナプロセスも作成します。 アプリケーションマスターが、アプリケーションが実行する必要のあるすべてのものを含むCLC(Container Launch Context)によって、ノードマネージャーから接続されたコンテナーを送信および要求する場合。 次に、ノードマネージャは、要求されたプロセスコンテナを作成し、それを実行します。 ノードマネージャーは、個々のコンテナーによるリソース使用量を監視し、それをリソースマネージャーに報告する役割も果たします。 したがって、ノードマネージャーとリソースマネージャーは連携してノード間で通信し、クラスター内の各ノードによるリソース使用量を管理します。 リソースマネージャーから指示された場合は、コンテナーを強制終了することもできます。 最後に、ノードマネージャは、ログ管理システムによってすべてをログに記録します。

特定のノードは、ノードマネージャーによって処理されます。 ノードマネージャは、ノードのワークフローとアプリケーションを管理します。 ログ管理が実行され、ノードマネージャがリソースの使用状況を監視します。 リソースマネージャーは、コンテナーを強制終了するための指示をノードマネージャーに提供します。 アプリケーションマスターは、ノードマネージャーにコンテナープロセスの開始を要求します。 コンテナプロセスの作成は、ノードマネージャの責任です。

  • リソースマネージャー:

すべてのアプリのリソース管理と割り当ては、Resource Managerの責任であり、YARNのマスターデーモンです。 リソースマネージャーが受信した要求は、対応するノードマネージャーに転送されます。 アプリケーションに応じて、リソースはリソースマネージャーによって割り当てられて完了します。

  1. SLA、公平性、容量保証などのさまざまな種類の制限に対して、すべてのリソースの使用をアクティブに保つなど、クラスターの使用率が最適化されます。
  2. リソースマネージャーは、使用可能なリソースの割り当てを行います。
  3. Resource Managerは、クラスターリソースを調停します。
  4. リクエストの実際の処理はノードで行われ、ノードマネージャがそれを管理します。 処理の要求を受信するたびに、要求を部分的に対応するノードマネージャーに転送します。
  5. Resource Managerは、リソースを割り当てるための最高の権限です。

Resource Managerには、次の2つの主要コンポーネントがあります。–

  • アプリケーションマネージャ -

アプリケーションマネージャは、送信された一連のタスクまたはアプリケーションを管理する責任があります。 最初に、提出されたアプリケーションの仕様を検証および検証し、十分なリソースが利用できない場合はアプリケーションを拒否する場合があります。 また、誤ったクライアントまたは悪意のあるクライアントによって引き起こされる可能性のある、すでに送信された同じIDを持つ他のアプリケーションが存在しないことを保証します。 次に、検証後に送信されたアプリケーションをスケジューラーに転送します。 最後に、アプリケーションの状態を監視し、完成したアプリケーションを管理して、ResourceManagerのメモリを節約します。 アプリケーションマネージャは、完成したアプリケーションのキャッシュを保持し、新しく提出されたアプリケーション用のスペースに対応するために、古い完成したアプリケーションを移動します。

  • スケジューラー–

リソースの可用性とアプリケーションの割り当てに基づいて、スケジューラーはタスクをスケジュールします。 タスクの失敗、追跡、または監視後にジョブを再開しないなど、スケジューラーによって実行される他のタスクはありません。 さまざまなタイプのスケジューラプラグインは、FairSchedulerとCapacitySchedulerであり、クラスタリソースのパーティション用にYARNスケジューラによってサポートされています。

HadoopYARNでのアプリケーションのワークフローのステップ

申請書はクライアントから提出されます。

  1. Application Managerは、ResourceManagerによるコンテナーの割り当てによって開始されます。
  2. ResourceManagerとApplicationManagerは相互に登録します。
  3. アプリケーションマネージャーは、コンテナーとリソースマネージャーのネゴシエーションを行います。
  4. ノードマネージャは、アプリケーションマネージャから通知を受けた後、コンテナを起動します。
  5. アプリケーションコードの実行はコンテナで行われます。
  6. ApplicationManagerまたはResourceManagerは、クライアントからの連絡後、アプリケーションのステータスを監視します。
  7. Application Managerの登録解除は、プロセスの完了後にResourceManagerで実行されます。

まとめ

ビッグデータについて詳しく知りたい場合は、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンをカバーしています。ワークショップ、トップ企業との400時間以上の厳格な学習と就職支援。

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

未来のテクノロジーをマスターする-ビッグデータ

400時間以上の学習。 14言語とツール。 IIIT-B同窓生ステータス。
IIITバンガロアからのビッグデータの高度な証明書プログラム