hadoop家族成員

Hadoop是Apache開源組織的一個分佈式計算開源框架(http://hadoop.apache.org/)

其主要成員爲

HDFS

HDFS是一種用於Hadoop應用程序的主存儲系統,也是一個高容錯性系統,適合部署在廉價機上,同時,HDFS能提高吞吐量的數據訪問,非常適合大規模數據集上的應用。


HDFS爲了做到可靠性創建了多份數據塊的複製,並將它們放置在服務器羣的計算節點中,MapReduce就可以在它們所造的幾點上處理這些數據了。


HDFS默認的最基本的存儲單位是64M的數據塊。


HDFS主要由NameNode和DataNode組成, NameNode是HDFS中負責namespace管理的節點,NameNode保存了當前集羣中所存儲的的所有的文件的元數據信息,NameNode同時與集羣中其它的節點通信,以保持元數據與系統中的文件的一致性,同時也和 client通信,以響應client對文件的需要。DataNode是文件系統的工作節點,他們根據客戶端或者是DataNode的調度存儲和檢索數據,並且定期向DataNode發送他們所存儲的塊(block)的列表。

MapReduce

MapReduce是一種處理海量數據的並行編程模型和計算框架,主要用於大數據集的並行計算。


主要分爲兩個階段,分別爲

Map階段:

MapReduce框架將任務的輸入分割成固定大小的片段(splites),隨後將每個splite進一步分解成一批鍵值對<K1,V1>。 Hadoop爲每個split創建一個Map任務用於執行用戶自定義的Map函數,並將對應split中的<K1,V1>對作爲輸入,得到計算的中間結果<K2,V2>,接着將中間結果按照K2進行排序,並key值相同的value放在一起形成<K2,list(V2)>元組。最後在根據key值的範圍進行分組,分配到不同的Reduce任務。

Reduce階段:

Reducer把從不同Mapper接收來的數據整合在一起並進行排序,然後調用用戶自定義的reduce函數,對輸入<K2,list(V2)>對進行處理,得到鍵值對<K3,V3>並輸出到HDFS上。job.setNumReduceTask()方法設置reduce數。


Zookeeper

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


Hbase

HBase是Hadoop的數據庫。能對大型數據提供隨即、實時的讀寫訪問。HBase的目標是存儲並處理大型的數據。HBase是一個開源的、分佈式的、多版本的、面向列的存儲模型。它存儲的是鬆散型數據。


HBase是Google BigTable的開源實現。Google BigTable利用 GFS 作爲其文件存儲系統,HBase利用Hadoop HDFS作爲其文件存儲系統;Google 運行 MapReduce來處理BigTable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google BigTable利用 Chubby作爲協同服務,HBase利用Zookeeper作爲對應。


Pig

Pig是SQL-like(類SQL)語言,是在MapReduce上構建的一種高級查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,並且用戶可以定義自己的功能。


Hive

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供完整的SQL查詢功能,可以將SQL語句轉換爲MapReduce任務進行運行。其優點是學習成本低,可以通過類SQL語句塊快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫。


Chukwa

Chukwa是由Yahoo貢獻,基於Hadoop的大集羣監控系統,可以用他來分析和收集系統中的數據(日誌)。Chukwa運行HDFS中存儲數據的收集器和MapReduce框架之上,並繼承了Hadoop的可擴展性和魯棒性,Chukwa使用MapReduce來生成報告,他還包括一個用於監測和分析結果顯示的web-portal工具,通過web-portal工具使這個收 集數據的更佳具有靈活性。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章