它是壹個分布式系統基礎架構,由Apache基金會所開發。
用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
Hadoop的框架最核心的設計就是:HDFS和MapReduce.HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
Yarn
它是Hadoop2.0的升級版。
Yarn 的優點:
這個設計大大減小了 JobTracker(也就是現在的 ResourceManager)的資源消耗,並且讓監測每壹個 Job 子任務 (tasks) 狀態的程序分布式化了,更安全、更優美。
在新的 Yarn 中,ApplicationMaster 是壹個可變更的部分,用戶可以對不同的編程模型寫自己的 AppMst,讓更多類型的編程模型能夠跑在 Hadoop 集群中,可以參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
對於資源的表示以內存為單位 ( 在目前版本的 Yarn 中,沒有考慮 cpu 的占用 ),比之前以剩余 slot 數目更合理。
老的框架中,JobTracker 壹個很大的負擔就是監控 job 下的 tasks 的運行狀況,現在,這個部分就扔給 ApplicationMaster 做了,而 ResourceManager 中有壹個模塊叫做 ApplicationsMasters( 註意不是 ApplicationMaster),它是監測 ApplicationMaster 的運行狀況,如果出問題,會將其在其他機器上重啟。
Container 是 Yarn 為了將來作資源隔離而提出的壹個框架。這壹點應該借鑒了 Mesos 的工作,目前是壹個框架,僅僅提供 java 虛擬機內存的隔離 ,hadoop 團隊的設計思路應該後續能支持更多的資源調度和控制 , 既然資源表示成內存量,那就沒有了之前的 map slot/reduce slot 分開造成集群資源閑置的尷尬情況。