這篇文章簡單介紹了Hadoop相關的技術生態圈,同時共用一份前一陣編寫的實踐教程,需要者自取。
在雲計算和大資料大行其道的今天,Hadoop及其相關技術起到了非常重要的作用,是這個時代不容忽視的一個技術平臺。 事實上,由於其開源、低成本和和前所未有的擴充性,Hadoop正成為新一代的資料處理平臺。
Hadoop是基於JAVA語言構建的一套分散式資料處理框架,從其歷史發展角度我們就可以看出,Hadoop一誕生,就具備高貴的血統,發展順風順水:
2004年,Google發表論文,向全世界介紹了MapReduce
2005年初,為了支援Nutch搜尋引擎專案,Nutch的開發者基於Google發佈的MapReduce報告,在Nutch上開發了一個可工作的MapReduce應用
2005年中,所有主要的Nutch演算法被移植到MapReduce和NDFS(Nutch Distributed File System )環境來運行
2006年2月,Apache Hadoop專案正式啟動以支援MapReduce和HDFS的獨立發展
2007年,百度開始使用Hadoop做離線處理,目前差不多80%的Hadoop集群用作日誌處理
2008年,淘寶開始投入研究基於Hadoop的系統–雲梯,並將其用於處理電子商務相關資料。 雲梯1的總容量大概為9.3PB,包含了1100台機器,每天處理約18000道作業,掃描500TB資料
2008年1月,Hadoop成為Apache頂級專案
2008年7月,Hadoop打破1TB資料排序基準測試記錄。 Yahoo的一個Hadoop集群用209秒完成1TB資料的排序,比上一年的紀錄保持者保持的297秒快了將近90秒
......
很多人開始接觸Hadoop時,都以為這是一個專案,其實Hadoop除了核心的MapReduce和HDFS之外,還包含了眾多的子專案,換句話說,Hadoop已經形成了一個豐富的技術生態圈:
為什麼會有這樣的技術誕生呢?
簡而言之,隨著互聯網的飛速發展,大量資料的存儲和分析遇到瓶頸,磁片容量的增長遠遠大於磁片讀取速度,1TB的磁片,資料傳送速率100MB/s,讀一遍2.5H,寫資料就別提了,心拔涼拔涼的(當然SSD在生產環境的實際應用, 大大緩解了這一窘境)。 資料量的增長在互聯網應用中體現的非常明顯,好的互聯網應用動輒就有上千萬的使用者,無論是資料的容量、壓力都與日俱增。 另外在企業應用層面,很多大中型企業,資訊化進行了十幾年,企業內部積累了大量的非結構化資料,各種類型的檔需要存儲、備份、分析、展示,苦於沒有很好的辦法進行資料處理。
那麼如何解決這樣的問題,技術牛娃自然有辦法,比如磁片資料的並行讀寫,資料分塊,分散式檔案系統,冗餘數據,MapReduce演算法等等,最後Hadoop等類似的技術應運而生。 於是我等草民有福了。
不是有那麼一句話麼,大資料勝於好演算法,如果資料足夠多,可能產生出意想之外的應用,看看現在Facebook、Twitter、微博相關的衍生應用就知道了。 另外,無論演算法好壞,更多的資料總能帶了來更好的推薦效果,這也是顯而易見。
所以,無論雲計算和大資料口號喊的多麼虛頭八腦,但Hadoop都是一門非常務實的技術,無論你身在互聯網企業還是傳統軟體公司,都應該學習和瞭解這門技術。
下面是我前一陣內部技術交流寫的一份Hadoop簡介和實踐的教程類KeyNote,希望能有點説明。
多說一句,Hadoop的部署提供三種模式,本地模式、偽分佈模式和全分佈模式,建議大家採用第三種進行實踐,這樣對系統用法的理解更深入一些。 這就需要你至少要兩台機器進行集群,比較好的方式是使用虛擬機器。 Hadoop原生支援 Unix/Linux,你要是想在Windows上玩,還需要裝類比環境cygwin。 這時候就體現出Mac使用者的優勢了,我是採用Mac做 Master,起兩台虛擬Linux做Slave,SSD+8G記憶體,毫無壓力。 這樣做的好處其實在Unix程式設計思想這部書中也提到過,就是用最小工作環境達到最大的工作範圍。
原文連接:HTTP://www.cnblogs.com/chijianqiang/archive/2012/06/25/hadoop-info.html