Hadoop技術體系解讀

在一個張口閉口都是大數據雲計算的今天,咱們有必要思考一下,在目前主流的技術體系層面它所表明的意義是什麼,指望個人博文可以給後來人一些啓示,少繞一些彎路。算法

咱們仍是從Hadoop生態系統進行分析:數據庫

你們知道,Hadoop的兩大核心就是HDFS和MapReduce,而整個Hadoop的體系結構主要是經過HDFS的分佈式存儲做爲底層數據支持的。而且會經過MapReduce來進行計算分析。架構

Hadoop1.x的核心:

1. Hadoop Common框架

2. Hadoop Distributed File System(HDFS)機器學習

3. Hadoop MapReduce分佈式

Hadoop2.x的核心:

1. Hadoop Common函數

2. Hadoop Distributed File System(HDFS)工具

3. Hadoop MapReduceoop

4. Hadoop YARN性能

Hadoop1.x生態系統:

Hadoop2.x生態系統圖:

那麼咱們從理解的角度來看,自底而上,分別是數據存儲,數據整合管理,數據計算,數據挖掘處理這麼幾個過程。而各層之間貫穿着ETL和日誌收集工具。這就是Hadoop粗略的一個知識架構。下面咱們一個個的來看,整個Hadoop的技術生態體系板塊是怎樣的。

1. HDFS

分佈式文件系統,將一個文件分紅多個塊,分別存儲(拷貝)到不一樣的節點上.它是Hadoop體系中數據存儲管理的基礎。它是一個高度容錯的系統,能檢測和應對硬件故障,用於在低成本的通用硬件上運行。HDFS簡化了文件的一致性模型,經過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。提供了hadoop運算過程當中的數據存儲、數據備份、數據錯誤校驗等功能

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. Mahoutt

數據挖掘算法庫,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和關係型數據庫之間的數據轉移工具。可將關係型數據庫中的數據導入到HadoopHDFS中,也可將HDFS中的數據導進到關係型數據庫中主要用於傳統數據庫和Hadoop以前傳輸數據。數據的導入和導出本質上是Mapreduce程序,充分利用了MR的並行化和容錯性。

9. Flume

日誌收集工具,Cloudera開源的日誌收集系統,具備分佈式、高可靠、高容錯、易於定製和擴展的特色。它將數據從產生、傳輸、處理並最終寫入目標的路徑的過程抽象爲數據流,在具體的數據流中,數據源支持在Flume中定製數據發送方,從而支持收集各類不一樣協議數據。同時,Flume數據流提供對日誌數據進行簡單處理的能力,如過濾、格式轉換等。此外,Flume還具備可以將日誌寫往各類數據目標(可定製)的能力。總的來講,Flume是一個可擴展、適合複雜環境的海量日誌收集系統。

10. Ambari

是一個對Hadoop集羣進行監控和管理的基於Web的系統。目前已經支持HDFS,MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop等組件。

11.Apache Spark

Apache Spark是提供大數據集上快速進行數據分析的計算引擎。它創建在HDFS之上,卻繞過了MapReduce使用本身的數據處理框架。Spark經常使用於實時查詢、流處理、迭代算法、複雜操做運算和機器學習。

相關文章
相關標籤/搜索