Hadoop工程師成為熱門職業
JP 摩根大通總經理 Larry Feinsmith 在紐約舉行的 Hadoop World 2011 會議上發表了主題演講,公開聲明
高薪招聘精通 Hadoop 的軟件工程師。
Hadoop 是一個頂級 Apache 開源項目,主要被應用于分析大數據集,被 eBay、非死book、Yahoo、AOL 和 推ter 等互聯網公司廣泛采用,今年
微軟、IBM 和甲骨文也都紛紛擁抱 Hadoop。JP 摩根大通在全球有超過24.5萬雇員,其中 IT 雇員2.5萬,每年的 IT 開支在80億美元左右,該公司已經使用 Hadoop 超過三年的時間,用它分析 150 petabytes 的在線數據。
Hadoop介紹 |
Hadoop是一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。 Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性(fault-tolerent)的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streaming access)文件系統中的數據。 下面列舉hadoop主要的一些特點: 1 擴容能力(Scalable):能可靠地(reliably)存儲和處理千兆字節(PB)數據。2 成本低(Economical):可以通過普通機器組成的服務器群來分發以及處理數據。這些服務器群總計可達數千個節點。3 高效率(Efficient):通過分發數據,hadoop可以在數據所在的節點上并行地(parallel)處理它們,這使得處理非常的快速。4 可靠性(Reliable):hadoop能自動地維護數據的多份復制,并且在任務失敗后能自動地重新部署(redeploy)計算任務。 |
Hadoop主要子項目 |
* Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他項目公共內容,從0.21開始HDFS和MapReduce被分離為獨立的子項目,其余內容為Hadoop Common * HDFS: Hadoop 分佈式文件系統 (Distributed File System) - HDFS (Hadoop Distributed File System) * MapReduce:并行計算框架,0.20前使用 org.apache.hadoop.mapred 舊接口,0.20版本開始引入org.apache.hadoop.mapreduce的新API * HBase: 類似Google BigTable的分布式NoSQL列數據庫。(HBase 和 Avro 已經于2010年5月成為頂級 Apache 項目[1]) * Hive:數據倉庫工具,由非死book貢獻。 * Zookeeper:分布式鎖設施,提供類似Google Chubby的功能,由非死book貢獻。 * Avro:新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制。 |
Hadoop發展歷史 |
Hadoop這個名字不是一個縮寫,它是一個虛構的名字。該項目的創建者,Doug Cutting如此解釋Hadoop的得名:"這個名字是我孩子給一頭吃飽了的棕黃色大象命名的。我的命名標準就是簡短,容易發音和拼寫,沒有太多的意義,并且不會被用于別處。小孩子是這方面的高手。Googol就是由小孩命名的。" Hadoop及其子項目和后繼模塊所使用的名字往往也與其功能不相關,經常用一頭大象或其他動物主題(例如:"Pig")。較小的各個組成部分給與更多描述性(因此也更俗)的名稱。這是一個很好的原則,因為它意味著可以大致從其名字猜測其功能,例如,jobtracker 的任務就是跟蹤MapReduce作業。 從頭開始構建一個網絡搜索引擎是一個雄心勃勃的目標,不只是要編寫一個復雜的、能夠抓取和索引網站的軟件,還需要面臨著沒有專有運行團隊支持運行它的挑戰,因為它有那么多獨立部件。同樣昂貴的還有:據Mike Cafarella和Doug Cutting估計,一個支持此10億頁的索引需要價值約50萬美元的硬件投入,每月運行費用還需要3萬美元。 不過,他們相信這是一個有價值的目標,因為這會開放并最終使搜索引擎算法普及化。 Nutch項目開始于2002年,一個可工作的抓取工具和搜索系統很快浮出水面。但他們意識到,他們的架構將無法擴展到擁有數十億網頁的網絡。在 2003年發表的一篇描述Google分布式文件系統(簡稱GFS)的論文為他們提供了及時的幫助,文中稱Google正在使用此文件系統。 GFS或類似的東西,可以解決他們在網絡抓取和索引過程中產生的大量的文件的存儲需求。具體而言,GFS會省掉管理所花的時間,如管理存儲節點。在 2004年,他們開始寫一個開放源碼的應用,即Nutch的分布式文件系統(NDFS)。 2004年,Google發表了論文,向全世界介紹了MapReduce。 2005年初,Nutch的開發者在Nutch上有了一個可工作的MapReduce應用,到當年年中,所有主要的Nutch算法被移植到使用MapReduce和NDFS來運行。 Nutch中的NDFS和MapReduce實現的應用遠不只是搜索領域,在2006年2月,他們從Nutch轉移出來成為一個獨立的Lucene 子項目,稱為Hadoop。大約在同一時間,Doug Cutting加入雅虎,Yahoo提供一個專門的團隊和資源將Hadoop發展成一個可在網絡上運行的系統(見后文的補充材料)。在2008年2月,雅虎宣布其搜索引擎產品部署在一個擁有1萬個內核的Hadoop集群上。 2008年1月,Hadoop已成為Apache頂級項目,證明它是成功的,是一個多樣化、活躍的社區。通過這次機會,Hadoop成功地被雅虎之外的很多公司應用,如Last.fm、非死book和《紐約時報》。(一些應用在第14章的案例研究和Hadoop維基有介紹,Hadoop維基的網址為http://wiki.apache.org/hadoop/PoweredBy。) 有一個良好的宣傳范例,《紐約時報》使用亞馬遜的EC2云計算將4 TB的報紙掃描文檔壓縮,轉換為用于Web的PDF文件。 這個過程歷時不到24小時,使用100臺機器運行,如果不結合亞馬遜的按小時付費的模式(即允許《紐約時報》在很短的一段時間內訪問大量機器)和 Hadoop易于使用的并行程序設計模型,該項目很可能不會這么快開始啟動。 2008年4月,Hadoop打破世界紀錄,成為最快排序1TB數據的系統。運行在一個910節點的群集,Hadoop在209秒內排序了1 TB的數據(還不到三分半鐘),擊敗了前一年的297秒冠軍。同年11月,谷歌在報告中聲稱,它的MapReduce實現執行1TB數據的排序只用了68 秒。 在2009年5月,有報道宣稱Yahoo的團隊使用Hadoop對1 TB的數據進行排序只花了62秒時間。 構建互聯網規模的搜索引擎需要大量的數據,因此需要大量的機器來進行處理。Yahoo!Search包括四個主要組成部分:Crawler,從因特網下載網頁;WebMap,構建一個網絡地圖;Indexer,為最佳頁面構建一個反向索引;Runtime(運行時),回答用戶的查詢。WebMap是一幅圖,大約包括一萬億條邊(每條代表一個網絡鏈接)和一千億個節點(每個節點代表不同的網址)。創建和分析此類大圖需要大量計算機運行若干天。在 2005年初,WebMap所用的基礎設施名為Dreadnaught,需要重新設計以適應更多節點的需求。Dreadnaught成功地從20個節點擴展到600個,但需要一個完全重新的設計,以進一步擴大。Dreadnaught與MapReduce有許多相似的地方,但靈活性更強,結構更少。具體說來,每一個分段(fragment),Dreadnaught作業可以將輸出發送到此作業下一階段中的每一個分段,但排序是在庫函數中完成的。在實際情形中,大多數WebMap階段都是成對存在的,對應于MapReduce。因此,WebMap應用并不需要為了適應MapReduce而進行大量重構。 Eric Baldeschwieler(Eric14)組建了一個小團隊,我們開始設計并原型化一個新的框架(原型為GFS和MapReduce,用C++語言編寫),打算用它來替換Dreadnaught。盡管當務之急是我們需要一個WebMap新框架,但顯然,標準化對于整個Yahoo! Search平臺至關重要,并且通過使這個框架泛化,足以支持其他用戶,我們才能夠充分運用對整個平臺的投資。 與此同時,我們在關注Hadoop(當時還是Nutch的一部分)及其進展情況。2006年1月,雅虎聘請了Doug Cutting,一個月后,我們決定放棄我們的原型,轉而使用Hadoop。相較于我們的原型和設計,Hadoop的優勢在于它已經在20個節點上實際應用過。這樣一來,我們便能在兩個月內搭建一個研究集群,并著手幫助真正的客戶使用這個新的框架,速度比原來預計的快許多。另一個明顯的優點是Hadoop 已經開源,較容易(雖然遠沒有那么容易!)從雅虎法務部門獲得許可在開源方面進行工作。因此,我們在2006年初設立了一個200個節點的研究集群,我們將WebMap的計劃暫時擱置,轉而為研究用戶支持和發展Hadoop。 |
Hadoop大事記 |
2004年-- 最初的版本(現在稱為HDFS和MapReduce)由Doug Cutting和Mike Cafarella開始實施。 2005年12月-- Nutch移植到新的框架,Hadoop在20個節點上穩定運行。 2006年1月-- Doug Cutting加入雅虎。 2006年2月-- Apache Hadoop項目正式啟動以支持MapReduce和HDFS的獨立發展。 2006年2月-- 雅虎的網格計算團隊采用Hadoop。 2006年4月-- 標準排序(10 GB每個節點)在188個節點上運行47.9個小時。 2006年5月-- 雅虎建立了一個300個節點的Hadoop研究集群。 2006年5月-- 標準排序在500個節點上運行42個小時(硬件配置比4月的更好)。 06年11月-- 研究集群增加到600個節點。 06年12月-- 標準排序在20個節點上運行1.8個小時,100個節點3.3小時,500個節點5.2小時,900個節點7.8個小時。 07年1月-- 研究集群到達900個節點。 07年4月-- 研究集群達到兩個1000個節點的集群。 08年4月-- 贏得世界最快1 TB數據排序在900個節點上用時209秒。 08年10月-- 研究集群每天裝載10 TB的數據。 09年3月-- 17個集群總共24 000臺機器。 09年4月-- 贏得每分鐘排序,59秒內排序500 GB(在1400個節點上)和173分鐘內排序100 TB數據(在3400個節點上)。 |
來自:
Solidot
本文由用戶
fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!