私はHDFSへのジョブ投入とHadoopの中YARNアーキテクチャに関する質問のカップルを持っていた:YARNとHadoopの
だから、Hadoopのエコシステムで使用すると、保存データ、任意の数のノードを含めることができ、各クラスタに1人の名前ノードを持っていますあなたのデータ。 Hadoopにジョブをサブミットすると、NameNode上のジョブトラッカーは各ジョブを選択し、それをデータノード上のファイルが存在するタスクトラッカーに割り当てます。
私の質問は、HDFSでYARNのコンポーネントがどのように連携して動作するかです。
したがって、YARNはNodeManagerとResource Managerで構成されています。これらの2つのコンポーネントのうち、NodeManagerはすべてのDataNodeで実行され、ResourceManagerは各クラスタのNameNodeで実行されますか?したがって、(各DataNode内の)タスクトラッカーが(NameNode内の)ジョブトラッカーからタスクを割り当てられると、特定のデータノード内のNodeManagerは、NameNodeのResourceManagerからリソースを要求するコンテナを作成します。したがって、このリソースマネージャーとノードマネージャーは、データノードのタスクトラッカーがNameNodeのジョブトラッカーからジョブを取得したときに機能します。NodeManagerは、ResourceManagerにジョブの実行リソースを要求します。これは正しいです?
こんにちはVignesh、これははっきりしています! JobTrackerやTaskTrackerがなくても、ResourceManagerはすべてのジョブ "配布"を処理し、各DataNode上のNodeManagerと通信して、そのDataNodeに "タスク"を実行するためのリソースとコンテナを割り当てることができるかどうかを確認します。クライアントがHDFSにジョブを送信すると、まずResourceManagerまたはNameNodeと通信しますか?まずNameNodeがそのメタデータの使用にしかアクセスできないHDFS上にファイルが存在する場所を特定する必要があるでしょうか? – LP45
いいえ、ネームノードのヘルプは必要ありません。入力分割の計算は、クライアント側のJobまたはJobSubmitterによって行われ、分割はHDFSに配置されます(RMはメタデータを必要としません)。これは、Resource Managerがアプリケーションの送信依頼を受け取る前に行われます。 –
これは、ジョブをHDFSに送信する(HDFSから読み込む)ときにNameNodeと対話して、どのファイルがどのDataNodeに残っているかを把握することを意味します。 – LP45