爲什麼學校裏學習雲計算或者大數據都要從hadoop開始?


 

1、 hadoop開源,更容易拿到源代碼等,微軟等相關產品都是閉源的。Hadoop和微軟就好比安卓和ios。市面上華爲,小米,三星基本上都在Google開源Android的基礎上二次開發成自己的rom

2、 大數據現在是中國的十三五國家戰略,大數據火啊,而Apache hadoop現在已經發展成一個龐大的生態圈。全球各地的開發者都在貢獻者自己的代碼。各個分支也是相當火爆,例如spark。

3、 現在普遍認爲,大數據狹義的代表就是hadoop,其實並不是這樣,現在大數據公司有很多,

有做大數據基礎平臺的,例如星環科技,MapR,Hortonwork,Cloudera,這四家應該是現在全球頂尖top4了,3家美國硅谷的,一家中國上海的。這四家都是基於開源hadoop發展起來的。

有MPP架構的DW產品,例如Teredata,GP,IBM等

有做上層數據應用的,這類公司非常多,很多需要賣人力工時。

也有現在賣數據的公司,這種公司也非常多。

下面給個圖大家隨便看看

Hadoop生態系統

當今的Hadoop已經成長爲一個龐大的體系,只要有和海量數據相關的領域。都有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 MapReduce

4. Hadoop YARN

Hadoop1.x 生態系統圖


Hadoop2.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和關係型數據庫之間的數據轉移工具。可將關係型數據庫中的數據導入到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常用於實時查詢、流處理、迭代算法、複雜操作運算和機器學習。

 

現在hadoop發展很快,也有很多新的技術,以上也有很多技術不是那麼火爆了,有更優的選擇,不過我覺得如果你想學習大數據,作爲技術宅,這些組件還是都需要了解的。

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