1. 程式人生 > >Hadoop生態圈元件圖

Hadoop生態圈元件圖

Hadoop生態圈元件圖

1.Hadoop Common是Hadoop體系最底層的一個模組,為Hadoop各個子模組提供各種工具,比如系統配置工具Configuration、遠端呼叫RPC、序列化機制和日誌操作等等,是其他模組的基礎。

2.HDFS是Hadoop分散式檔案系統縮寫,它是Hadoop的基石。HDFS是一個具備高度容錯性的檔案系統,適合部署在廉價的機器上,它能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。

3.YARN是統一資源管理和排程平臺。它解決了上一代Hadoop資源利用率低和不能相容異構的計算框架等多種問題。提供了資源隔離方案和雙排程器的實現。

4.MapReduce是一種程式設計模型,利用函數語言程式設計思想,將對資料集的過程分為Map和Reduce兩個階段。MapReduce的這種程式設計模型非常適合進行分散式計算。Hadoop提供MapReduce的計算框架,實現了這種程式設計模型,使用者可以通過Java\C++\Python\PHP等多種語言進行程式設計。

5.Spark是加州伯克利大學AMP實驗室開發的新一代計算框架,對迭代計算有很大優勢,與MapReduce相比效能提升明顯,並且可以和Yarn整合,並且還提供了SparkSQL元件。

6.HBase來源於Google的Bigtable論文,HBase是一個分散式的,面向列族的開源資料庫。採用了Bigtable的資料模型--列族。HBase擅長大規模資料的隨機、實時讀寫訪問。

7.Zookeeper作為一個分散式服務框架,是基於Fast Paxos演算法實現,解決分散式系統中一致性的問題。提供了配置維護,名字服務,分散式同步,組服務等。

8.Hive最早是facebook開發並使用的,是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張表,提供簡單的SQL查詢功能。並將SQL轉為MapReduce作業執行。其有點就是學習成本低。降低了Hadoop的使用門檻。

9.Pig與Hive類似,也是對大資料集進行分析和評估的工具,不同於Hive的是Pig提供了一種高層的,面向領域的抽象語言Pig Latin.同樣Pig也可以將Pig Latin轉化為MapReduce作業。相比與SQL,Pig Latin更加靈活,但學習成本更高。

10.Impala是Cloudera公司開發,可以對儲存HDFS、HBase的海量資料提供互動查詢的SQL介面。除了和Hive使用相同的統一儲存平臺,Impala也使用相同的元資料,SQL語法,ODBC驅動程式和使用者介面。Impala還提供了一個熟悉的面向批量或者實時查詢的統一平臺。Impala的特點是查詢非常迅速,其效能大幅度領先於Hive。Impala並不是基於MapReduce的,它的定位是OLAP,是Google的新三駕馬車之一Dremel的開源實現。

11.Mahout是一個機器學習和資料探勘庫,它利用MapReduce程式設計模型實現k-means,Native,Bayes,Collaborative Filtering等經典的機器學習演算法,並使其具有良好的可擴充套件性。

12.Flume是Cloudera提供的一個高可用,高可靠,分散式的海量日誌採集、聚合和傳輸系統,Flume支援在日誌系統中定製各類資料傳送方,用於資料收集,同時Flume提供對資料進行簡單處理並寫到各個資料接收方的能力。

13.Sqoop是SQL to Hadoop的縮寫,主要作用在於結構化的資料儲存與Hadoop之間進行資料雙向交換,也就是說,Sqoop可以將關係型資料庫的資料匯入到HDFS、Hive、也可以從HDFS、Hive匯出到關係型資料庫中。Sqoop利用了Hadoop的優點,整個匯入匯出都是由MapReduce計算框架實現並行化,非常高效。

14.Kafka是一種高吞吐量的分散式釋出訂閱訊息系統。具有分散式、高可用的特性,在大資料系統裡被廣泛使用,如果把大資料系統比作一臺機器,那麼kafka就是前端匯流排,它連線了平臺中的各個元件。

還有比如說Storm這樣大資料平臺。