次の図は、Hadoopの糸はHadoopのの間引き方法の簡単な関数を記述しています。
注:からの画像 https://apprize.info/php/hadoop/9.html
Hadoopのv2の初め、リソースのスケジューリングとモニタリングから、運用管理タスクを個別にHadoopから抽出して、元のJobTrackerとTaskTracker機能が抽出されます。YARNフルネームもう一つのリソース交渉は、共有タスクスケジューリングコンピューティング・プラットフォームを提供することです。ここでリソースと動作は、リソース管理プラットフォームとアプリケーション・フレームワークを形成するために分離し、リソース管理プラットフォームは、リソースのスケジューリングおよび監視を担当して、アプリケーション・フレームワークは、管理タスクまたはジョブの主な原因です。
単に糸TaskTracker JobTrackerとフレームHadoopのうちから機能分離するだけでなく、図から分かるように、サブタスクとリソースの概念は、特定のタスクおよびアプリケーションフレームワーク分離に残します。このようなスケジューリングの仕様のMapReduceや火花タスクとしてのみアプリケーションフレームワークは、糸仕様およびリソース管理タスクを追跡、タスクが糸アップの実行に提出することができます。モジュール間の結合を減少させます。
簡単に糸コンポーネントを説明するために、公式文書のより直感的な観点から来ます:
図形、のResourceManagerデータと計算フレームノードマネージャ組成物から分かるように 計算プロセスを管理する責任があるのResourceManagerに必要なすべてのリソースは、ノードマネージャエージェントは、各ノードで計算フレームワークであり、コンテナのリソースを担当し、監視し、リソースの使用状況やResouceManagerスケジューラに報告し、各アプリケーションが実際にApplicationMasterですそのタスク固有のライブラリのフレームワークは、このResourceManagerからリソースを調整し、監視タスクを実行し、ノードマネージャとすることです。[公式ドキュメントからの翻訳]
ResourceManager 包括Scheduler 和 ApplicationManager 两大组件。调度程序负责根据容量,队列等约束将资源分配给各种正在运行的应用程序。Scheduler 是纯调度程序,因为它不执行应用程序状态的监视或跟踪。 此外,由于应用程序故障或硬件故障,它无法保证重新启动失败的任务。调度程序根据应用程序的资源需求执行其调度功能; 它是基于资源Container的抽象概念,它包含内存,CPU,磁盘,网络等元素。【翻译自官方文档】
综上所述,研究YARN,不得不研究ResourceManager 和 NodeManager的服务体系。其中,研究ResourceManager就必须要研究 Scheduler 和 ApplicationManager两大组件。
注意,Container 其实是一个基于资源的一个概念,并不是某种服务。
接下来,主要研究 RM服务以及NM服务以及二者是如何通信的。