Hadoop組成簡介

Hadoop組成簡介 
瀏覽(1647)|評論(0)   交流分類:Java|筆記分類: hadoop 

Hadoop是Apache的一個項目(它是包含了很多子項目的集合,見下圖),它是一個實現了MapReduce計算模型的可以運用於大型集羣並行計算的分佈式並行計算編程框架,當然分佈式計算離不開分佈式存儲,Hadoop框架包含了分佈式存儲系統HDFS(Hadoop Distributed File System),其存儲和數據結構很類似Google的GFS.
HBase是Hadoop的其中一個子項目,它是基於Hadoop HDFS分佈存儲系統的一個Google BigTable開源實現。它在存儲數據結構上並非關係型,而是疏鬆分佈式的,持久並按多維排序並索引的map型,
    Google BigTable的paper: 
http://labs.google.com/papers/bigtable-osdi06.pdf



 

目前,整個Hadoop家族由以下幾個子項目組成:

Hadoop Common
Hadoop體系最底層的一個模塊,爲Hadoop各子項目提供各種工具,如:配置文件和日誌操作等。

Avro
Avro是doug cutting主持的RPC項目,有點類似Google的protobuf和Facebook的thrift。avro用來做以後hadoop的RPC,使hadoop的RPC模塊通信速度更快、數據結構更緊湊。

Chukwa
Chukwa是基於Hadoop的大集羣監控系統,由yahoo貢獻。

HBase
基於Hadoop Distributed File System,是一個開源的,基於列存儲模型的分佈式數據庫。

HDFS
分佈式文件系統

Hive
hive類似CloudBase,也是基於hadoop分佈式計算平臺上的提供data warehouse的sql功能的一套軟件。使得存儲在hadoop裏面的海量數據的彙總,即席查詢簡單化。hive提供了一套QL的查詢語言,以sql爲基礎,使用起來很方便。

MapReduce
實現了MapReduce編程框架

Pig
Pig是SQL-like語言,是在MapReduce上構建的一種高級查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,並且用戶可以定義自己的功能。Yahoo網格運算部門開發的又一個克隆Google的項目Sawzall。

ZooKeeper
Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。


Sqoop 是一個可以將關係型數據庫中的數據導入到Hadoop文件系統(HDFS)中的工具 。例如 Mysql的數據向Hive/HBase遷移。支持 Hsqldb、MySQL、Oracle、PostgreSQL等。

YARN是什麼?
資源調度系統。 CDH 4.3是支持YARN的,而Spark後邊支持了YARN,因此比較自然地選擇了YARN來做資源調度。
Mesos來做資源的調度和管理。我們的計劃是CDH 4.3不升級,新的機器都用新的Hadoop版本,然後用Mesos來統一調度。另外,都引入Tachyon作爲緩存層,SSD作爲shuffle的落地存儲。如果用Mesos調度,我們對Hadoop版本的依賴就降低了。Hadoop升級風險有點高。這算是我們遇到的最大的一個坑了。我這裏關於YARN的吐槽就這麼多,其餘的使用Spark的坑,後邊有機會再說吧。
目前Spark裏面Mesos和YARN都支持兩種調度模式,client和cluster。其中Mesos還支持粗力度和細力度兩種模式,細力度的模式下,在提交task的時候直接跟mesos master通信,使得Spark作業和其他框架作業共享資源。當然也包括其它的Spark作業,資源不獨佔。但是這樣方式的壞處就是調度overhead比較大,不適合交互式作業。粗力度的調度方式其實和目前YARN是一樣的,有利於低延遲的作業。
兩種模式的測試數據我有的,由於不在Hadoop的生態內,Mesos還是比較悲劇的。

發佈了120 篇原創文章 · 獲贊 6 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章