Hadoop概述

每一個知道大數據的人都聽說過hadoop,作爲基礎框架,其憑藉着低成本、高可靠、高擴展、高有效、高容錯等特性成爲最流行的大數據分析系統。要入門大數據,最好的辦法就是理清Hadoop的生態系統。中興大數據公衆號將推出“一頁紙精華”欄目,將用最精煉的語言,陸續爲你介紹Hadoop生態系統的各個組件。
Hadoop是Apache軟件基金會的頂級開源項目,是由原雅虎公司Doug Cutting根據Google發佈的學術論文而創建的開源項目。Doug Cutting被稱爲Hadoop之父,他打造了目前在雲計算和大數據領域裏如日中天的Hadoop。
Hadoop的發音是[hdu:p],Hadoop 這個名字不是一個縮寫,而是一個虛構的名字。Doug Cutting解釋Hadoop的得名:“這個名字是我孩子給一個棕黃色的大象玩具命名的。我的命名標準就是簡短、容易發音和拼寫,沒有太多的意義,並且不會被用於別處,小孩子恰恰是這方面的高手”。
 Apache Hadoop官方定義是:Hadoop項目是一套可靠的,可擴展的,支持分佈式計算的開源軟件。
Hadoop是一個基礎框架,允許用簡單的編程模型在計算機集羣對大型數據集使進行分佈式處理。它的設計規模從單一服務器到數千臺機器,每個都提供本地計算和存儲,框架本身提供計算機集羣高可用的服務而不是依靠硬件來提供高可用性。用戶可以在不瞭解分佈式底層細節的情況下,輕鬆地在Hadoop上開發和運行處理海量數據的應用程序,低成本、高可靠、高擴展、高有效、高容錯等特性讓Hadoop成爲最流行的大數據分析系統。
Hadoop特點
Hadoop是一個能夠對大量數據進行分佈式處理的軟件框架,它是以一種可靠、高效、可伸縮的方式進行數據處理。
Hadoop 是可靠的,它假設計算元素和存儲會失敗,因此它維護多個數據副本,確保能夠針對失敗的節點重新分佈處理。
Hadoop 是高效的,它以並行的方式工作,通過並行處理加快處理速度。Hadoop 還是可伸縮的,能夠處理PB級數據。Hadoop是一個能夠讓用戶輕鬆架構和使用的分佈式計算平臺。用戶可以輕鬆地在Hadoop上開發和運行處理海量數據的應用程序。
Hadoop帶有用Java語言編寫的框架,因此運行在 Linux 生產平臺上是非常理想的。Hadoop 上的應用程序也可以使用其他語言編寫,比如C++。Hadoop 依賴於社區服務,它的成本比較低。
Hadoop版本演進
當前Hadoop有兩大版本:Hadoop 1.0和Hadoop 2.0。
Hadoop1.0被稱爲第一代Hadoop,由分佈式文件系統HDFS和分佈式計算框架MapReduce組成,其中,HDFS由一個NameNode和多個DataNode組成,MapReduce由一個JobTracker和多個TaskTracker組成,對應Hadoop版本爲0.20.x、0.21.X,0.22.x和Hadoop 1.x。其中0.20.x是比較穩定的版本,最後演化爲1. x,變成穩定版本。0.21.x和0.22.x則增加了NameNode HA等新特性。
第二代Hadoop被稱爲Hadoop2.0,是爲克服Hadoop 1.0中HDFS和MapReduce存在的各種問題而提出的,對應Hadoop版本爲Hadoop 0.23.x和2.x。
針對Hadoop1.0中NameNode HA不支持自動切換且切換時間過長的風險,Hadoop2.0提出了基於共享存儲的HA方式,支持失敗自動切換切回。
針對Hadoop 1.0中的單NameNode制約HDFS的擴展性問題,提出了HDFS Federation機制,它允許多個NameNode各自分管不同的命名空間進而實現數據訪問隔離和集羣橫向擴展。
針對Hadoop 1.0中的MapReduce在擴展性和多框架支持方面的不足,提出了全新的資源管理框架YARN,它將JobTracker中的資源管理和作業控制功能分開,分別由組件ResourceManager和ApplicationMaster實現。其中,ResourceManager負責所有應用程序的資源分配,而ApplicationMaster僅負責管理一個應用程序。相比於 Hadoop 1.0,Hadoop 2.0框架具有更好的擴展性、可用性、可靠性、向後兼容性和更高的資源利用率以及能支持除了MapReduce計算框架外的更多的計算框架,Hadoop 2.0目前是業界主流使用的Hadoop版本。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章