Hadoop構架概覽
hadoop是一個開源的軟件框架,是一個利用商業硬件處理和存儲大型數據的軟件。從下到上主要有五個主要的組成部分:
- 集群,是一套主機(節點)組成的。節點可以以機架劃分。這個是硬件級別的構架.
-
YARN構架 (目前為止的另外一個資源管理器)是一個負責提供計應用執行的時候需要的計算資源的框架(也就是cpu,內存等等). 兩個重要的部分如下::
-
一個資源管理器 (每個集群一個) 作為master. 資源管理器知道下面的每一個slave節點在哪里(機架感知) 以及他們這些節點有哪些資源可以使用. master運行若干服務。最重要的是資源調度器,資源調度器決定怎樣分配資源.
-
節點管理器 (一個集群有很多個r)是slave構架組成. 當節點管理器啟動的時候,將自己注冊到資源管理器,并且定時的相資源管理器發送心跳信息。每一個節點管理器提供自己的資源給集群。那么他的資源其實就是內存的大小,有多少個vcores。再運行時狀態,資源調度器會決定如何使用這些資源:一個容器是這些資源的一部分并且被客戶端用來運行一個程序。
-
-
HDFS是一個負責提供持久的,可靠的,分布式的存儲框架。用來存儲輸入和輸出(除開中間輸出)。
- 其他的存儲系統:例如Amazon S3.
- MapReduce 框架是一個實現mapreduce算法的軟件層
YRAN構架以及HDFS完全分開并且彼此獨立。前者提供資源并且運行一個程序后者則提供存儲。mapreduce則很多可以運行在YRAN頂層的框架之一。(雖然目前為止還是唯一的,但是到2016就不唯一了)
YRAN:啟動應用
在 YARN中, 至少有下面三個部分:
- Job Submitter (客戶端)
- Resource Manager (master端)
- Node Manager (slave端)
應用的啟動如下所示:
- 一個客戶端提交一個程序給資源管理器
- 資源管理器分配一個容器
- 資源管理器聯系相關的節點管理器
- 節點管理器啟動容器
- 容器執行應用Master
應用Master負責單個應用的執行。他向資源調度器請求容器,執行特定的程序(例如java的main方法)。應用master知曉應用的邏輯因此是框架特特異的。mapreduce提供自己實現的應用master。
來自: http://blog.csdn.net//mrcharles/article/details/50478906