官术网_书友最值得收藏!

2.1 概述

本節簡要介紹Hadoop的起源、發展歷史、特性、應用現狀和版本演變。

2.1.1 Hadoop簡介

Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺,為用戶提供了系統底層細節透明的分布式基礎架構。Hadoop 是基于 Java語言開發的,具有很好的跨平臺特性,并且可以部署在廉價的計算機集群中。Hadoop的核心是分布式文件系統(Hadoop Distributed File System,HDFS)和MapReduce。HDFS是針對谷歌文件系統(Google File System,GFS)的開源實現,是面向普通硬件環境的分布式文件系統,具有較高的讀寫速度、很好的容錯性和可伸縮性,支持大規模數據的分布式存儲,其冗余數據存儲的方式很好地保證了數據的安全性。MapReduce是針對谷歌 MapReduce 的開源實現,允許用戶在不了解分布式系統底層細節的情況下開發并行應用程序,采用MapReduce來整合分布式文件系統上的數據,可保證分析和處理數據的高效性。借助于Hadoop,程序員可以輕松地編寫分布式并行程序,將其運行于廉價計算機集群上,完成海量數據的存儲與計算。

Hadoop被公認為行業大數據標準開源軟件,在分布式環境下提供了海量數據的處理能力。幾乎所有主流廠商都圍繞 Hadoop 提供開發工具、開源軟件、商業化工具和技術服務,如谷歌、雅虎、微軟、思科、淘寶等都支持Hadoop。

2.1.2 Hadoop的發展簡史

Hadoop這個名稱朗朗上口,至于為什么要取這樣一個名字,其實并沒有深奧的道理,只是追求名稱簡短、容易發音和記憶而已。很顯然,小孩子是這方面的高手,大名鼎鼎的“Google”就是由小孩子給取名的,Hadoop同樣如此,它是小孩子給“一頭吃飽了的棕黃色大象”取的名字(見圖2-1)。Hadoop后來的很多子項目和模塊的命名方式都沿用了這種風格,如Pig和Hive等。

圖2-1 Hadoop的標志

Hadoop最初是由Apache Lucene項目的創始人Doug Cutting開發的文本搜索庫。Hadoop源自2002年的Apache Nutch項目——一個開源的網絡搜索引擎并且也是Lucene項目的一部分。在2002年的時候,Nutch項目遇到了棘手的難題,該搜索引擎框架無法擴展到擁有數十億網頁的網絡。而就在一年以后的2003 年,谷歌公司發布了分布式文件系統 GFS 方面的論文,可以解決大規模數據存儲的問題。于是,在2004年,Nutch項目也模仿GFS開發了自己的分布式文件系統(Nutch Distributed File System,NDFS),也就是HDFS的前身。

2004 年,谷歌公司又發表了另一篇具有深遠影響的論文,闡述了 MapReduce 分布式編程思想。2005年,Nutch開源實現了谷歌的MapReduce。到了2006年2月,Nutch中的NDFS和MapReduce開始獨立出來,成為Lucene項目的一個子項目,稱為Hadoop,同時Doug Cutting加盟雅虎。2008年1月,Hadoop正式成為Apache頂級項目,Hadoop也逐漸開始被雅虎之外的其他公司使用。2008年4月,Hadoop打破世界紀錄,成為最快排序1 TB數據的系統,它采用一個由910個節點構成的集群進行運算,排序時間只用了209s。在2009年5月,Hadoop更是把1 TB數據排序時間縮短到62 s。Hadoop從此聲名大噪,迅速發展成為大數據時代最具影響力的開源分布式開發平臺,并成為事實上的大數據處理標準。

2.1.3 Hadoop的特性

Hadoop是一個能夠對大量數據進行分布式處理的軟件框架,并且是以一種可靠、高效、可伸縮的方式進行處理的,它具有以下幾個方面的特性。

● 高可靠性。采用冗余數據存儲方式,即使一個副本發生故障,其他副本也可以保證正常對外提供服務。

● 高效性。作為并行分布式計算平臺,Hadoop采用分布式存儲和分布式處理兩大核心技術,能夠高效地處理PB級數據。

● 高可擴展性。Hadoop 的設計目標是可以高效穩定地運行在廉價的計算機集群上,可以擴展到數以千計的計算機節點上。

● 高容錯性。采用冗余數據存儲方式,自動保存數據的多個副本,并且能夠自動將失敗的任務進行重新分配。

● 成本低。Hadoop 采用廉價的計算機集群,成本比較低,普通用戶也很容易用自己的 PC搭建Hadoop運行環境。

● 運行在Linux平臺上。Hadoop是基于Java語言開發的,可以較好地運行在Linux平臺上。

● 支持多種編程語言。Hadoop上的應用程序也可以使用其他語言編寫,如C++。

2.1.4 Hadoop的應用現狀

Hadoop憑借其突出的優勢,已經在各個領域得到了廣泛的應用,而互聯網領域是其應用的主陣地。

2007年,雅虎在Sunnyvale總部建立了M45——一個包含了4 000個處理器和1.5 PB容量的Hadoop集群系統。此后,包括卡耐基梅隆大學、加州大學伯克利分校、康奈爾大學和馬薩諸塞大學阿默斯特分校、斯坦福大學、華盛頓大學、密歇根大學、普渡大學等12所大學加入該集群系統的研究,推動了開放平臺下的開放源碼發布。目前,雅虎擁有全球最大的 Hadoop 集群,有大約25 000個節點,主要用于支持廣告系統與網頁搜索。

Facebook作為全球知名的社交網站,擁有超過3億的活躍用戶,其中,約有3 000萬用戶至少每天更新一次自己的狀態;用戶每月總共上傳 10 億余張照片、1 000 萬個視頻,每周共享 10億條內容,包括日志、鏈接、新聞、微博等。因此,Facebook需要存儲和處理的數據量同樣是非常巨大的,每天新增加4 TB壓縮后的數據,掃描135 TB大小的數據,在集群上執行Hive任務超過7 500次,每小時需要進行8萬次計算。很顯然,對于Facebook而言,Hadoop是非常理想的選擇,Facebook主要將Hadoop平臺用于日志處理、推薦系統和數據倉庫等方面。

國內采用Hadoop的公司主要有百度、淘寶、網易、華為、中國移動等,其中,淘寶的Hadoop集群比較大。據悉,淘寶Hadoop集群擁有2 860個節點,清一色基于英特爾處理器的X86服務器,其總存儲容量達到50 PB,實際使用容量超過40PB,日均作業數高達15萬,服務于阿里巴巴集團各部門,數據來源于各部門產品的線上數據庫(Oracle、MySQL)備份、系統日志以及爬蟲數據,每天在Hadoop集群運行各種MapReduce任務,如數據魔方、量子統計、推薦系統、排行榜等。

作為全球最大的中文搜索引擎公司,百度對海量數據的存儲和處理要求是非常高的。因此,百度選擇了Hadoop,主要用于日志的存儲和統計、網頁數據的分析和挖掘、商業分析、在線數據反饋、網頁聚類等。百度目前擁有3個Hadoop集群,計算機節點數量在700個左右,并且規模還在不斷增加中,每天運行的MapReduce任務在3 000個左右,處理數據約120 TB/天。

華為是 Hadoop 的使用者,也是 Hadoop 技術的重要推動者。由雅虎成立的 Hadoop 公司Hortonworks 曾經發布一份報告,用來說明各個公司對 Hadoop 發展的貢獻。其中,華為公司在Hadoop重要貢獻公司名單內,排在谷歌和思科公司的前面,說明華為公司也在積極參與開源社區貢獻。

2.1.5 Hadoop的版本

Apache Hadoop版本分為兩代,第一代Hadoop稱為Hadoop 1.0,第二代Hadoop稱為Hadoop 2.0。第一代Hadoop包含0.20.x、0.21.x和0.22.x三大版本,其中,0.20.x最后演化成1.0.x,變成了穩定版,而0.21.x和0.22.x則增加了HDFS HA等重要的新特性。第二代Hadoop包含0.23.x和2.x兩大版本,它們完全不同于Hadoop 1.0,是一套全新的架構,均包含HDFS Federation和YARN(Yet Another Resource Negotiator)兩個系統。

除了免費開源的Apache Hadoop以外,還有一些商業公司推出Hadoop的發行版。2008年,Cloudera成為第一個Hadoop商業化公司,并在2009年推出第一個Hadoop發行版。此后,很多大公司也加入了做 Hadoop產品化的行列,比如 MapR、Hortonworks、星環等。一般而言,商業化公司推出的Hadoop發行版也是以Apache Hadoop為基礎,但是前者比后者具有更好的易用性、更多的功能以及更高的性能。

主站蜘蛛池模板: 比如县| 贺兰县| 自贡市| 梁山县| 洪江市| 广南县| 米脂县| 白玉县| 绥德县| 赣州市| 邯郸县| 大渡口区| 清苑县| 苍梧县| 苏尼特左旗| 新兴县| 岱山县| 青阳县| 岳阳县| 进贤县| 祁门县| 繁峙县| 博客| 呈贡县| 鄂托克前旗| 崇左市| 宣汉县| 汝城县| 毕节市| 镇平县| SHOW| 阳朔县| 洞头县| 南华县| 尚义县| 定陶县| 三原县| 麟游县| 保靖县| 库伦旗| 扎兰屯市|