hadoop是由Apache基金會開發的一個大數據分佈式系統基礎架構,最先版本是2003年原Yahoo!DougCutting根據Google發佈的學術論文研究而來。服務器
用戶能夠在不瞭解分佈式底層細節的狀況下,輕鬆地在Hadoop上開發和運行處理海量數據的應用程序。低成本、高可靠、高擴展、高有效、高容錯等特性讓Hadoop成爲最流行的大數據分析系統,然而其賴以生存的HDFS和MapReduce組件卻讓其一度陷入困境——批處理的工做方式讓其只適用於離線數據處理,在要求實時性的場景下毫無用武之地。架構
所以,各類基於Hadoop的工具應運而生,本次爲你們分享Hadoop生態系統中最經常使用的13個開源工具,其中包括資源調度、流計算及各類業務針對應用場景。首先,咱們看資源管理相關。框架
資源統一管理/調度系統分佈式
在公司和機構中,服務器每每會由於業務邏輯被拆分爲多個集羣,基於數據密集型的處理框架也是不斷涌現,好比支持離線處理的MapReduce、支持在線處理的Storm及Impala、支持迭代計算的Spark及流處理框架S4,它們誕生於不一樣的實驗室,並各有所長。工具
爲了減小管理成本,提高資源的利用率,一個共同的想法產生——讓這些框架運行在同一個集羣上;所以,就有了當下衆多的資源統一管理/調度系統,本次爲你們重點介紹ApacheMesos及YARN:oop
一、ApacheMesos大數據
代碼託管地址:ApacheSVNorm
Mesos提供了高效、跨分佈式應用程序和框架的資源隔離和共享,支持Hadoop、MPI、Hypertable、Spark等。blog
Mesos是Apache孵化器中的一個開源項目,使用ZooKeeper實現容錯複製,使用LinuxContainers來隔離任務,支持多種資源計劃分配(內存和CPU)。提供Java、Python和C++APIs來開發新的並行應用程序,提供基於Web的用戶界面來提查看集羣狀態。索引
二、HadoopYARN
代碼託管地址:ApacheSVN
YARN又被稱爲MapReduce2.0,借鑑Mesos,YARN提出了資源隔離解決方案Container,可是目前還沒有成熟,僅僅提供Java虛擬機內存的隔離。
對比MapReduce1.x,YARN架構在客戶端上並未作太大的改變,在調用API及接口上還保持大部分的兼容,然而在YARN中,開發人員使用ResourceManager、ApplicationMaster與NodeManager代替了原框架中核心的JobTracker和TaskTracker。其中ResourceManager是一箇中心的服務,負責調度、啓動每個Job所屬的ApplicationMaster,另外還監控ApplicationMaster的存在狀況;NodeManager負責Container狀態的維護,並向RM保持心跳。ApplicationMaster負責一個Job生命週期內的全部工做,相似老的框架中JobTracker。
Hadoop上的實時解決方案
前面咱們有說過,在互聯網公司中基於業務邏輯需求,企業每每會採用多種計算框架,好比從事搜索業務的公司:網頁索引創建用MapReduce,天然語言處理用Spark等。