Hadoop YARNチュートリアル–YARNアーキテクチャの基礎を学ぶ



このブログは、リソース管理とジョブスケジューリングのためにHadoopバージョン2.0で導入されたApache HadoopYARNに焦点を当てています。 YARNアーキテクチャとそのコンポーネント、および各コンポーネントによって実行される職務について説明します。 Apache HadoopYARNでのアプリケーションの送信とワークフローについて説明します。

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は、リソースを割り当て、スケジューリングを実行し、処理ジョブを監視しました。それは、タスクトラッカーと呼ばれるいくつかの従属プロセスでマップとリデュースタスクを割り当てました。タスクトラッカーは定期的に進捗状況をジョブトラッカーに報告しました。





MapReduceバージョン1.0-HadoopYARN-Edureka

この設計では、単一のジョブトラッカーが原因でスケーラビリティのボトルネックが発生しました。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アーキテクチャは、次の主要コンポーネントで構成されています。

  1. リソースマネージャー マスターデーモンで実行され、クラスター内のリソース割り当てを管理します。
  2. ノードマネージャー: これらはスレーブデーモンで実行され、すべての単一データノードでタスクを実行します。
  3. アプリケーションマスター: 個々のアプリケーションのユーザージョブライフサイクルとリソースニーズを管理します。ノードマネージャと連携して動作し、タスクの実行を監視します。
  4. コンテナ: 単一ノード上の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)起動

7)実行する

HadoopYARNのアプリケーションワークフロー

与えられた画像を参照し、Apache HadoopYARNのアプリケーションワークフローに関連する次の手順を参照してください。

  1. クライアントが申請書を提出する
  2. Resource Managerは、ApplicationManagerを起動するためのコンテナを割り当てます
  3. ApplicationManagerはResourceManagerに登録します
  4. Application Managerは、ResourceManagerにコンテナーを要求します
  5. ApplicationManagerはNodeManagerにコンテナを起動するように通知します
  6. アプリケーションコードはコンテナ内で実行されます
  7. クライアントはリソースマネージャー/アプリケーションマネージャーに連絡して、アプリケーションのステータスを監視します
  8. ApplicationManagerがResourceManagerから登録解除されます

Apache Hadoop YARNがわかったので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaビッグデータHadoop認定トレーニングコースは、小売、ソーシャルメディア、航空、観光、金融の各ドメインでリアルタイムのユースケースを使用して、学習者がHDFS、Yarn、MapReduce、Pig、Hive、HBase、Oozie、Flume、Sqoopのエキスパートになるのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。