一.簡述Hadoop平台的起源、發展曆史與應用現狀。
Hadoop的起源
2003-2004年,Google公布了部分GFS和MapReduce思想的細節,受此啟發的Doug Cutting等人用2年的業餘時間實作了DFS和MapReduce機制,使Nutch性能飙升。然後Yahoo招安Doug Gutting及其項目。
2005年,Hadoop作為Lucene的子項目Nutch的一部分正式引入Apache基金會。
2006年2月被分離出來,成為一套完整獨立的軟體,起名為Hadoop
Hadoop名字不是一個縮寫,而是一個生造出來的詞。是Hadoop之父Doug Cutting兒子毛絨玩具象命名的。
Hadoop的成長過程
Lucene–>Nutch—>Hadoop
總結起來,Hadoop起源于Google的三大論文
GFS:Google的分布式檔案系統Google File System
MapReduce:Google的MapReduce開源分布式并行計算架構
BigTable:一個大型的分布式資料庫
演變關系
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase
hadoop的曆史版本介紹
0.x系列版本:hadoop當中最早的一個開源版本,在此基礎上演變而來的1.x以及2.x的版本
1.x版本系列:hadoop版本當中的第二代開源版本,主要修複0.x版本的一些bug等
2.x版本系列:架構産生重大變化,引入了yarn平台等許多新特性
hadoop三大公司發型版本介紹
1.免費開源版本apache:
http://hadoop.apache.org/
優點:擁有全世界的開源貢獻者,代碼更新疊代版本比較快,
缺點:版本的更新,版本的維護,版本的相容性,版本的更新檔都可能考慮不太周到,學習可以用,實際生産工作環境盡量不要使用
apache所有軟體的下載下傳位址(包括各種曆史版本):
http://archive.apache.org/dist/
2.免費開源版本hortonWorks:
https://hortonworks.com/
hortonworks主要是雅虎主導Hadoop開發的副總裁,帶領二十幾個核心成員成立Hortonworks,核心産品軟體HDP(ambari),HDF免費開源,并且提供一整套的web管理界面,供我們可以通過web界面管理我們的叢集狀态,web管理界面軟體HDF網址(http://ambari.apache.org/)
3.軟體收費版本ClouderaManager:
https://www.cloudera.com/
cloudera主要是美國一家大資料公司在apache開源hadoop的版本上,通過自己公司内部的各種更新檔,實作版本之間的穩定運作,大資料生态圈的各個版本的軟體都提供了對應的版本,解決了版本的更新困難,版本相容性等各種問題,生産環境強烈推薦使用
國外Hadoop的應用現狀
1.Yahoo
Yahoo是Hadoop的最大支援者,截至2012年,Yahoo的Hadoop機器總節點數目超過42?000個,有超過10萬的核心CPU在運作Hadoop。最大的一個單Master節點叢集有4500個節點(每個節點雙路4核心CPUboxesw,4×1TB磁盤,16GBRAM)。總的叢集存儲容量大于350PB,每月送出的作業數目超過1000萬個,在Pig中超過60%的Hadoop作業是使用Pig編寫送出的。
Yahoo的Hadoop應用主要包括以下幾個方面:
- 支援廣告系統
- 使用者行為分析
- 支援Web搜尋
- 反垃圾郵件系統
- 會員反濫用
- 内容靈活
- 個性化推薦
同時Pig研究并測試支援超大規模節點叢集的Hadoop系統。
2.Facebook
Facebook使用Hadoop存儲内部日志與多元資料,并以此作為報告、分析和機器學習的資料源。目前Hadoop叢集的機器節點超過1400台,共計11?200個核心CPU,超過15PB原始存儲容量,每個商用機器節點配置了8核CPU,12TB資料存儲,主要使用StreamingAPI和JavaAPI程式設計接口。Facebook同時在Hadoop基礎上建立了一個名為Hive的進階資料倉庫架構,Hive已經正式成為基于Hadoop的Apache一級項目。此外,還開發了HDFS上的FUSE實作。
3.A9.com
A9.com為Amazon使用Hadoop建構了商品搜尋索引,主要使用StreamingAPI以及C++、Perl和Python工具,同時使用Java和StreamingAPI分析處理每日數以百萬計的會話。A9.com為Amazon建構的索引服務運作在100節點左右的Hadoop叢集上。
4.Adobe
Adobe主要使用Hadoop及HBase,同于支撐社會服務計算,以及結構化的資料存儲和處理。大約有超過30個節點的Hadoop-HBase生産叢集。Adobe将資料直接持續地存儲在HBase中,并以HBase作為資料源運作MapReduce作業處理,然後将其運作結果直接存到HBase或外部系統。Adobe在2008年10月就已經将Hadoop和HBase應用于生産叢集。
5.CbIR
自2008年4月以來,日本的CbIR(Content-basedInformationRetrieval)公司在AmazonEC2上使用Hadoop來建構圖像處理環境,用于圖像産品推薦系統。使用Hadoop環境生成源資料庫,便于Web應用對其快速通路,同時使用Hadoop分析使用者行為的相似性。
6.Datagraph
Datagraph主要使用Hadoop批量處理大量的RDF資料集,尤其是利用Hadoop對RDF資料建立索引。Datagraph也使用Hadoop為客戶執行長時間運作的離線SPARQL查詢。Datagraph是使用AmazonS3和Cassandra存儲RDF資料輸入和輸出檔案的,并已經開發了一個基于MapReduce處理RDF資料的Ruby架構——RDFgrid。
Datagraph主要使用Ruby、RDF.rb以及自己開發的RDFgrid架構來處理RDF資料,主要使用HadoopStreaming接口。
7.EBay
單叢集超過532節點叢集,單節點8核心CPU,容量超過5.3PB存儲。大量使用的MapReduce的Java接口、Pig、Hive來處理大規模的資料,還使用HBase進行搜尋優化和研究。
8.IBM
IBM藍雲也利用Hadoop來建構雲基礎設施。IBM藍雲使用的技術包括:Xen和PowerVM虛拟化的Linux作業系統映像及Hadoop并行工作量排程,并釋出了自己的Hadoop發行版及大資料解決方案。
9.Last.Fm
Last.Fm主要用于圖表計算、專利申報、日志分析、A/B測試、資料集合并等,也使用Hadoop對超過百萬的曲目進行大規模的音頻特征分析。
節點超過100台機器,叢集節點配置雙四核[email protected]@2.13GHz,24GB記憶體,8TB(4×2TB)存儲。
10.LinkedIn
LinkedIn有多種硬體配置的Hadoop叢集,主要叢集配置如下:
- 800節點叢集,基于Westmere的惠普SL170X與2×4的核心,24GB記憶體,6×2TBSATA。
- 1900節點叢集,基于Westmere的超微-HX8DTT,與2×6的核心,24GB記憶體,6×2TBSATA。
- 1400節點叢集,基于SandyBridge超微與2×6的核心,32GB記憶體,6×2TBSATA。
使用的軟體如下:
- 作業系統使用RHEL6.3。
- JDK使用SUNJDK1.6.0_32。
- Apache的Hadoop0.20.2的更新檔和ApacheHadoop的1.0.4更新檔。
- Azkaban和Azkaban用于作業排程。
- Hive、Avro、Kafka等。
11.MobileAnalytic.TV
主要使用Hadoop應用在并行化算法領域,涉及的MapReduce應用算法如下。
- 資訊檢索和分析。
- 機器生成的内容——文檔、文本、音頻、視訊。
- 自然語言處理。
- 項目組合包括:
- 移動社交網絡。
- 網絡爬蟲。
- 文本到語音轉化。
- 音頻和視訊自動生成。
12.Openstat
主要利用Hadoop定制一個網絡日志分析并生成報告,其生産環境下超過50個節點叢集(雙路四核Xeon處理器,16GB的RAM,4~6硬碟驅動器),還有兩個相對小的叢集用于個性化分析,每天處理約500萬的事件,每月15億美元的交易資料,叢集每天産生大約25GB的報告。
使用的技術主要包括:CDH、Cascading、Janino。
13.Quantcast
3000個CPU核心,3500TB存儲,每日處理1PB以上的資料,使用完全自定義的資料路徑和排序器的Hadoop排程器,對KFS檔案系統有突出貢獻。
14.Rapleaf
超過80個節點的叢集(每個節點有2個雙核CPU,2TB×8存儲,16GBRAM記憶體);主要使用Hadoop、Hive處理Web上關聯到個人的資料,并引入Cascading簡化資料流穿過各種處理階段。
15.WorldLingo
硬體上超過44台伺服器(每台有2個雙核CPU,2TB存儲,8GB記憶體),每台伺服器均運作Xen,啟動一個虛拟機執行個體運作Hadoop/HBase,再啟動一個虛拟機執行個體運作Web或應用程式伺服器,即有88台可用的虛拟機;運作兩套獨立的Hadoop/HBase機群,它們各自擁有22個節點。Hadoop主要用于運作HBase和MapReduce作業,掃描HBase的資料表,執行特定的任務。HBase作為一種可擴充的、快速的存儲後端,用于儲存數以百萬的文檔。目前存儲了1200萬篇文檔,近期的目标是存儲4.5億篇文檔。
16.格拉斯哥大學的TerrierTeam
超過30個節點的實驗叢集(每節點配置XeonQuadCore2.4GHz,4GB記憶體,1TB存儲)。使用Hadoop促進資訊檢索研究和試驗,特别是用于TREC,用于TerrierIR平台。Terrier的開源發行版中包含了基于HadoopMapReduce的大規模分布式索引。
17.内布拉斯加大學的HollandComputingCenter
運作一個中等規模的Hadoop機群(共計1.6PB存儲)用于存儲和提供實體資料,以支援緊湊型μ子螺旋型磁譜儀(CompactMuonSolenoid,CMS)實驗的計算。這需要一類能夠以幾Gbps的速度下載下傳資料,并以更高的速度處理資料的檔案系統的支援。
18.VisibleMeasures
将Hadoop作為可擴充資料流水線的一個元件,最終用于VisibleSuite等産品。使用Hadoop彙總、存儲和分析與網絡視訊觀衆收看行為相關的資料流。目前的網格包括超過128個CPU核心,超過100TB的存儲,并計劃大幅擴容。
國内Hadoop的應用現狀
Hadoop在國内的應用主要以網際網路公司為主,下面主要介紹大規模使用Hadoop或研究Hadoop的公司。
1.百度
百度在2006年就開始關注Hadoop并開始調研和使用,在2012年其總的叢集規模達到近十個,單叢集超過2800台機器節點,Hadoop機器總數有上萬台機器,總的存儲容量超過100PB,已經使用的超過74PB,每天送出的作業數目有數千個之多,每天的輸入資料量已經超過7500TB,輸出超過1700TB。
百度的Hadoop叢集為整個公司的資料團隊、大搜尋團隊、社群産品團隊、廣告團隊,以及LBS團體提供統一的計算和存儲服務,主要應用包括:
- 資料挖掘與分析。
- 日志分析平台。
- 資料倉庫系統。
- 推薦引擎系統。
- 使用者行為分析系統。
同時百度在Hadoop的基礎上還開發了自己的日志分析平台、資料倉庫系統,以及統一的C++程式設計接口,并對Hadoop進行深度改造,開發了HadoopC++擴充HCE系統。
2.阿裡巴巴
阿裡巴巴的Hadoop叢集截至2012年大約有3200台伺服器,大約30?000實體CPU核心,總記憶體100TB,總的存儲容量超過60PB,每天的作業數目超過150?000個,每天hivequery查詢大于6000個,每天掃描資料量約為7.5PB,每天掃描檔案數約為4億,存儲使用率大約為80%,CPU使用率平均為65%,峰值可以達到80%。阿裡巴巴的Hadoop叢集擁有150個使用者組、4500個叢集使用者,為淘寶、天貓、一淘、聚劃算、CBU、支付寶提供底層的基礎計算和存儲服務,主要應用包括:
- 資料平台系統。
- 搜尋支撐。
- 廣告系統。
- 資料魔方。
- 量子統計。
- 淘資料。
- 搜尋排行榜。
為了便于開發,其還開發了WebIDE繼承開發環境,使用的相關系統包括:Hive、Pig、Mahout、Hbase等。
3.騰訊
騰訊也是使用Hadoop最早的中國網際網路公司之一,截至2012年年底,騰訊的Hadoop叢集機器總量超過5000台,最大單叢集約為2000個節點,并利用Hadoop-Hive建構了自己的資料倉庫系統TDW,同時還開發了自己的TDW-IDE基礎開發環境。騰訊的Hadoop為騰訊各個産品線提供基礎雲計算和雲存儲服務,其支援以下産品:
- 騰訊社交廣告平台。
- 搜搜(SOSO)。
- 拍拍網。
- 騰訊微網誌。
- 騰訊羅盤。
- QQ會員。
- 騰訊遊戲支撐。
- QQ空間。
- 朋友網。
- 騰訊開放平台。
- 财付通。
- 手機QQ。
- QQ音樂。
4.奇虎360
奇虎360主要使用Hadoop-HBase作為其搜尋引擎so.com的底層網頁存儲架構系統,360搜尋的網頁可到千億記錄,資料量在PB級别。截至2012年年底,其HBase叢集規模超過300節點,region個數大于10萬個,使用的平台版本如下。
- HBase版本:facebook0.89-fb。
- HDFS版本:facebookHadoop-20。
奇虎360在Hadoop-HBase方面的工作主要為了優化減少HBase叢集的啟停時間,并優化減少RS異常退出後的恢複時間。
5.華為
華為公司也是Hadoop主要做出貢獻的公司之一,排在Google和Cisco的前面,華為對Hadoop的HA方案,以及HBase領域有深入研究,并已經向業界推出了自己的基于Hadoop的大資料解決方案。
6.中國移動
中國移動于2010年5月正式推出大雲BigCloud1.0,叢集節點達到了1024。中國移動的大雲基于Hadoop的MapReduce實作了分布式計算,并利用了HDFS來實作分布式存儲,并開發了基于Hadoop的資料倉庫系統HugeTable,并行資料挖掘工具集BC-PDM,以及并行資料抽取轉化BC-ETL,對象存儲系統BC-ONestd等系統,并開源了自己的BC-Hadoop
版本。
中國移動主要在電信領域應用Hadoop,其規劃的應用領域包括:
- 經分KPI集中運算。
- 經分系統ETL/DM。
- 結算系統。
- 信令系統。
- 雲計算資源池系統。
- 物聯網應用系統。
- E-mail。
- IDC服務等。
7.盤古搜尋
盤古搜尋(目前已和即刻搜尋合并為中國搜尋)主要使用Hadoop叢集作為搜尋引擎的基礎架構支撐系統,截至2013年年初,叢集中機器數量總計超過380台,存儲總量總計3.66PB,主要包括的應用如下。
- 網頁存儲。
- 網頁解析。
- 建索引。
- Pagerank計算。
- 日志統計分析。
- 推薦引擎等。
- 即刻搜尋(人民搜尋)
即刻搜尋(目前已與盤古搜尋合并為中國搜尋)也使用Hadoop作為其搜尋引擎的支撐系統,截至2013年,其Hadoop叢集規模總計超過500台節點,配置為雙路6核心CPU,48G記憶體,11×2T存儲,叢集總容量超過10PB,使用率在78%左右,每天處理讀取的資料量約為500TB,峰值大于1P,平均約為300TB。
安裝MySql
