Hadoop1.x 的各項目介紹
1. HDFS
2. MapReduce
3. Hive
4. Pig
5. Mahout
6. ZooKeeper
7. HBase
8. Sqoop
9. Flume
10. Ambari
Hadoop生態系統
當今的Hadoop已經成長為一個龐大的體系,只要有和海量數據相關的領域。都有Hadoop的身影。
Hadoop生態系統圖譜
大家知道,Hadoop的兩大核心就是HDFS和MapReduce,而整個Hadoop的體系結構主要是通過HDFS的分布式存儲作為底層數據支持的。並且會通過MapReduce來進行計算分析。
Hadoop1.x的核心:
- Hadoop Common
- Hadoop Distributed File System(HDFS)
- Hadoop MapReduce
Hadoop2.x的核心:
- Hadoop Common
- Hadoop Distributed File System(HDFS)
- Hadoop MapReduce
- Hadoop YARN
Hadoop1.x 生態系統圖
Hadoop2.x 生態系統圖

Hadoop1.x 的各項目介紹
1. HDFS
分布式文件系統,將一個文件分成多個塊,分別存儲(拷貝)到不同的節點上.它是Hadoop體系中數據存儲管理的基礎。它是一個高度容錯的系統,能檢測和應對硬件故障,用於在低成本的通用硬件上運行。HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。
2. MapReduce
分布式計算框架,它是一種分布式計算處理模型和執行環境,用於進行大數據量的計算。共包括Map和Reduce部分。其中Map接受一個鍵值對(key-value),產生一組中間鍵值對。MapReduce框架會將map函數產生的中間鍵值對里鍵相同的值傳遞給一個reduce函數。Reduce函數:接受一個鍵,以及相關的一組值,將這組值進行合並產生一組規模更小的值(通常只有一個或零個值)。
3. Hive
基於Hadoop的數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供類似SQL一樣的查詢語言HiveQL來管理這些數據。Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用於離線分析。
4. Pig
Pig是一個基於Hadoop的大數據分析平台,它提供了一個叫PigLatin的高級語言來表達大數據分析程序,將腳本轉換為MapReduce任務在Hadoop上執行。通常用於進行離線分析。
5. Mahout
數據挖掘算法庫,Mahout起源於2008年,最初是Apache Lucent的子項目,它在極短的時間內取得了長足的發展,現在是Apache的頂級項目。Mahout的主要目標是創建一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。Mahout現在已經包含了聚類、分類、推薦引擎(協同過濾)和頻繁集挖掘等廣泛使用的數據挖掘方法。除了算法,Mahout還包含數據的輸入/輸出工具、與其他存儲系統(如數據庫、MongoDB 或Cassandra)集成等數據挖掘支持架構。
6. ZooKeeper
分布式協作服務,是一個針對大型分布式系統的可靠協調系統,提供包括配置維護,名字服務,分布式同步和組服務等功能。Hadoop的管理就是用的ZooKeeper
7. HBase
HBase是一個分布式列存數據庫,它基於Hadoop之上提供了類似BigTable的功能。HBase是一個針對結構化數據的可伸縮、高可靠、高性能、分布式和面向列的動態模式數據庫。和傳統關系數據庫不同,HBase采用了BigTable的數據模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和並行計算完美地結合在一起。
8. Sqoop
數據同步工具,SQL-to-Hadoop的縮寫。Sqoop是一個Hadoop和關系型數據庫之間的數據轉移工具。可將關系型數據庫中的數據導入到Hadoop的HDFS中,也可將HDFS中的數據導進到關系型數據庫中主要用於傳統數據庫和Hadoop之前傳輸數據。數據的導入和導出本質上是Mapreduce程序,充分利用了MR的並行化和容錯性。
9. Flume
日志收集工具,Cloudera開源的日志收集系統,具有分布式、高可靠、高容錯、易於定制和擴展的特點。它將數據從產生、傳輸、處理並最終寫入目標的路徑的過程抽象為數據流,在具體的數據流中,數據源支持在Flume中定制數據發送方,從而支持收集各種不同協議數據。同時,Flume數據流提供對日志數據進行簡單處理的能力,如過濾、格式轉換等。此外,Flume還具有能夠將日志寫往各種數據目標(可定制)的能力。總的來說,Flume是一個可擴展、適合復雜環境的海量日志收集系統。
10. Ambari
是一個對Hadoop集群進行監控和管理的基於Web的系統。目前已經支持HDFS,MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop等組件。
