apache hadoop yarn tutorial
Hadoopコンポーネント– Hadoop YARNを使用したMapReduce:
Hadoopコンポーネントに関する前回のチュートリアルでは、Hadoop MapReduceと、その処理メカニズム(INPUT、SPLITTING、MAPPING、SHUFFLING、REDUCING、FINAL RESULTなど)について学習しました。
このチュートリアルでは、以下について説明します。
- MapReduceはYARNとどのように連携しますか?
- HadoopYARNのアプリケーションワークフロー。
学習内容:
HadoopYARNでマップリデュース
MapReduceがYARNを使用してHadoopクラスター上でジョブを実行する方法を理解しましょう。しかし、先に進む前に、最初に頭に浮かぶ質問は YARNの完全な形は何ですか?または、YARNは何の略ですか?
糸 手段 さらに別のリソースネゴシエーター。
これは、Hadoopクラスター上で実行する必要のあるさまざまなジョブにリソースを割り当てるものです。これはHadoop2.0で導入されました。
Hadoop 1.0まで、MapReduceは、Hadoopクラスター上で実行できる唯一のフレームワークまたは唯一の処理ユニットでした。ただし、Hadoop 2.0ではYARNが導入され、それを使用することで、MapReduceを超えることもできます。
図からわかるように、下部にHDFSがあり、YARNがあり、YARNを使用すると、多くのフレームワークがHDFSに接続して利用できます。そのため、MapReduceでさえ、リソースを要求するためにYARNを使用して接続するために使用され、その後、HDFS、つまりHadoopクラスターを介してジョブを実行できます。
同様に; SPARK、STORM、およびその他の検索エンジンはHDFSに接続できます。 NoSQLデータベースであるHBaseも接続できます。そのため、YARNが他のフレームワークや他のビッグデータ分析ツールのゲートを開くことができたという理由だけで、HDFSのアプリケーションは巨大になりました。
MapReduceバージョン1(MRv1)とMapReduceバージョン2(MRv2)の違いは何ですか?
MRv1は本質的にHadoopフレームワーク1の一部であり、Hadoop 2でYARNが登場し、MapReduceがクラスのいくつかの変更を加えてMRv2にアップグレードされました。クラスは更新されましたが、MapReduceプログラムを作成する構文は同じままです。
このシナリオでは、MapReduceがYARNに接続して、HDFSを軸にしています。
YARNに加えて、ResourceManagerとNodeManagerは、Hadoopクラスターに導入された新しいデーモンです。
以前は、ジョブトラッカーとタスクトラッカーでした。ただし、これらはHadoop 2.0から削除され、ResourceManagerとNodeManagerがYARNとともにHadoopフレームワークに導入されました。
Hadoop2.xデーモン
ストレージと処理などのコンポーネントを実行する、Hadoop2.0で新しく導入されたデーモンを簡単に見てみましょう。
Windows10用のDVDリッパー無料ダウンロード
HDFSチュートリアルでは、デーモン、つまりNameNodeとDataNodeについて詳しく理解しました。このチュートリアルでは、Hadoop2.xクラスターでリソースマネージャーとノードマネージャーがどのように機能して、Hadoopクラスターで実行する必要のある処理とジョブを管理するかを理解します。
では、リソースマネージャーとは何ですか? Resource Managerは、マスターマシンまたはハイエンドマシンであるNameNodeで実行されるマスターデーモンです。一方、ノードマネージャは、スレーブマシンまたはDataNodeで、あるいはDataNodeプロセスとともに実行されるデーモンです。
Hadoop 2.x MapReduceYARNコンポーネント
以下のYARNの他のコンポーネントを見てみましょう。
- クライアント: これは、ジョブのようなコマンドラインインターフェイス(CLI)を送信するユニットであり、クライアントはJAVAアプリケーションである可能性があります。
- リソースマネージャー: これは、すべてのジョブがクライアントから送信されるマスターデーモンであり、特定のジョブを実行するためにすべてのクラスターレベルのリソースを割り当てるものです。クラスター全体をすべて管理する必要があるのはマスターマシンであるため、高品質のハードウェアと適切な構成を備えたハイエンドマシンで実行されます。
- ノードマネージャー :これはスレーブマシンまたはDataNodeで実行されるスレーブデーモンであるため、すべてのスレーブマシンでノードマネージャーが実行されます。特定のDataNodeのリソースを監視し、Resource Managerがクラスターリソースを管理し、NodeManagerがDataNodeリソースを管理します。
- ジョブ履歴サーバー: これは、クラスター上で実行された、またはクラスターに送信されたすべてのジョブを追跡するためのユニットです。ステータスも追跡し、Hadoopクラスター上で発生したすべての実行のログファイルも保持します。
- アプリケーションマスター :これは、ノードマシン、スレーブマシン上で実行され、ジョブを実行および管理するためにリソースマネージャーによって作成されるコンポーネントです。これは、リソースマネージャーからリソースをネゴシエートし、最終的にノードマネージャーと調整してタスクを実行するものです。
- コンテナ: これは、リソースマネージャーによって割り当てられたノードマネージャー自体によって作成され、すべてのジョブは最終的にコンテナー内で実行されます。
YARNワークフロー
上の図に示すように、 リソースマネージャー すべてのジョブが送信され、スレーブマシンが存在するクラスターがあり、すべてのスレーブマシンに ノードマネージャー ランニング。
リソースマネージャー 2つのコンポーネントがあります。 スケジューラー そして アプリケーションマネージャ。
ApplicationMasterとApplicationManagerの違いは何ですか?
アプリケーションマネージャ のコンポーネントです リソースマネージャー これにより、すべてのタスクが実行され、 アプリケーションマスター そのために作成されます。 アプリケーションマスター、 一方、タスクを実行し、実行する必要のあるすべてのリソースを要求する人です。
仕事がに提出されたとしましょう リソースマネージャー 、ジョブが送信されるとすぐに スケジューラー ジョブをスケジュールします。一度 スケジューラー 実行するジョブをスケジュールします アプリケーションマネージャ を作成します コンテナ の1つで DataNodes 、そしてこの中で コンテナ、 インクルード アプリケーションマスター 開始されます。
この アプリケーションマスター その後、に登録します リソースマネージャー とリクエスト コンテナ タスクを実行します。すぐに コンテナ 割り当てられ、 アプリケーションマスター これでに接続されます ノードマネージャー 起動をリクエストします コンテナ 。
ご覧のとおり、 アプリケーションマスター に割り当てられました DataNodes D そして IS 、そして今これ アプリケーションマスター 要求した ノードマネージャー を起動するには コンテナ の DataNode D そして DataNode E 。
すぐに コンテナ が発売され、 アプリケーションマスター 内でタスクを実行します コンテナ 結果はに返送されます クライアント 。
アプリケーションフロー
これを少し順番に理解しましょう。
次の図には、4つのコンポーネントがあります。最初のものは クライアント、 2つ目は リソースマネージャー 、3つ目は ノードマネージャー 4行目には アプリケーションマスター 。
それでは、これらのステップがそれらの間でどのように実行されるかを見てみましょう。
最初のステップは クライアント 誰がジョブを送信するか リソースマネージャー 、2番目のステップで リソースマネージャー を割り当てます コンテナ 開始するには アプリケーションマスター に スレーブマシン ; 3番目のステップは アプリケーションマスター に登録します リソースマネージャー 。
登録するとすぐに、 コンテナ タスクを実行する、つまり4番目のステップ。ステップ5では、 アプリケーションマスター に通知します ノードマネージャー その上で コンテナ 起動する必要があります。
ステップ6では、 ノードマネージャー を開始しました コンテナ、 インクルード アプリケーションマスター これらの中でコードを実行します コンテナ 。
最後に、7番目のステップでは、 クライアント 連絡先 リソースマネージャー または アプリケーションマスター アプリケーションのステータスを監視します。
結局、 アプリケーションマスター から自分自身を登録解除します リソースマネージャー 結果はに返されます クライアント 。したがって、これは、YARNフレームワークを使用してMapReduceプログラムを実行する方法の1つの単純な順次フローです。
結論
したがって、このチュートリアルでは、次の指針を学びました。
- 糸 手段 さらに別のリソースネゴシエーター。
- YARNはHadoop2.0で導入されました
- リソースマネージャーとノードマネージャーは、YARNとともにHadoopフレームワークに導入されました。
- クライアント、リソースマネージャー、ノードマネージャー、ジョブ履歴サーバー、アプリケーションマスター、コンテナーなどのYARNコンポーネント。
次回のチュートリアルでは、ビッグデータのテスト手法とビッグデータテストで直面する課題について説明します。また、これらの課題を克服する方法と、ビッグデータテストを簡単にするためのバイパス方法についても学びます。
=> ビッグデータをゼロから学ぶには、こちらにアクセスしてください。