包括以下四個方面內(nèi)容:
第一,大數(shù)據(jù)計算的背景和問題
第二,介紹Hadoop這個軟件是一個什么樣的東西
第三,我們在這方面做的一些工作
第四,實際應(yīng)用案例
大數(shù)據(jù)計算我們把它理解成為一個什么事情呢?目前現(xiàn)在這個時代通信、網(wǎng)絡(luò)等等這些電子信息技術(shù)發(fā)展,使數(shù)據(jù)規(guī)模得到了極大的增加。剛才蔣先生也提到了2011年整個全球產(chǎn)生的數(shù)據(jù)量達到1.8ZT,這樣的數(shù)據(jù)量為傳統(tǒng)的處理數(shù)據(jù)的技術(shù)提出了挑戰(zhàn)。傳統(tǒng)的技術(shù)處理不了這樣規(guī)模大的數(shù)據(jù)量。所以現(xiàn)在提到了,企業(yè)里怎么樣才能把數(shù)據(jù)變成價值?以前我們都說叫業(yè)務(wù)為王,現(xiàn)在這個時代,我認(rèn)為它已經(jīng)轉(zhuǎn)換到了以數(shù)據(jù)為王的時代。
這兒有一個例子,如果我們要處理100TB的數(shù)據(jù),如果用一臺機器處理的話,假設(shè)每秒鐘掃描50兆,需要35000分鐘,用1000臺機器干這個事可以縮到35分鐘,這說明這么大的數(shù)據(jù)只能用多機分布并行的方式處理才能夠把時間大大的縮短。在應(yīng)用領(lǐng)域,比如說數(shù)據(jù)倉庫、日志分析、用戶行為分析、在線行為分析,這些都屬于大數(shù)據(jù)應(yīng)用計算的應(yīng)用領(lǐng)域。數(shù)據(jù)的一些具體問題這里有一些數(shù)字,去年Facebook已經(jīng)有6億用戶,現(xiàn)在這個數(shù)字已經(jīng)變成9億了,每個月這些人上傳照片10億,每天產(chǎn)生300TB的數(shù)據(jù),所以什么樣的公司能承受這樣的數(shù)據(jù)量?它一定有自己的辦法。
國內(nèi)淘寶大概有3.7億會員,商品是8.8億,每天交易近1000萬筆,每天會產(chǎn)生20TB數(shù)據(jù)。從總的全球數(shù)據(jù)增長趨勢看,我們現(xiàn)在2010年是1.8, 20年后會增大44倍。60%創(chuàng)造的數(shù)據(jù)會因為沒有辦法存儲而丟失,所以整個挑戰(zhàn)就是數(shù)據(jù)報帳對存儲效率都會提出一個挑戰(zhàn)。
第一個矛盾就是數(shù)據(jù)的增長太快了,但是想一想,我們?nèi)绻氚堰@些東西存儲下來必須要有機器,必須要盤陣等等一系列的東西。等你發(fā)現(xiàn)數(shù)據(jù)中心擴容中心和數(shù)據(jù)增長的速度相比較而言不匹配的時候,就會產(chǎn)生一個很劇烈的矛盾。我們在和Facebook做一些合作的時候,09年的時候他們出現(xiàn)了這樣的問題,老的數(shù)據(jù)已經(jīng)滿了,新的數(shù)據(jù)正在建還沒有建好,這樣的空檔期所有的數(shù)據(jù)都有可能被扔掉。大家知道互聯(lián)網(wǎng)企業(yè)對數(shù)據(jù)價值很重視,所以我們合作的時候發(fā)明了一項新技術(shù),使得它在原有600臺機器的情況下平滑的遷移。
第二個是業(yè)務(wù)深度不斷加強。但是現(xiàn)在處理性能和處理技術(shù)跟不上。我希望從大數(shù)據(jù)里挖掘更有價值的東西但是沒有“金剛鉆”,所以歸結(jié)起來大家看到的矛盾就是這兩方面的矛盾。
解決這個問題的思路就是我先要能存下來這些數(shù)據(jù),要盡量多的存更多的數(shù)據(jù)。第二個思路就是怎么能夠加快海量數(shù)據(jù)計算的速度和性能。舉一個例子Facebook的09年的例子,(PPT)紅框里是核心業(yè)務(wù),最核心的是Hadoop,這是一個很大規(guī)模的集群,09年的時候大概是600到1000臺的規(guī)模,現(xiàn)在規(guī)模更大了。Hadoop就是把所有的數(shù)據(jù)全部存到這個集群里,這個集群不光是存儲,它是一臺一臺的機器,利用每臺機器硬盤存儲空間存儲數(shù)據(jù)。這些數(shù)據(jù)包括哪些?第一用戶的信息、前端服務(wù)器和用戶信息服務(wù)器和所有的日志就是用戶在上面點擊產(chǎn)生的數(shù)據(jù)都會放到Hadoop集群里。放到這里干什么用呢?就是要挖掘關(guān)聯(lián)關(guān)系,分析用戶行為。
比如說舉一個簡單的例子,我通過用戶日志的分析能夠判別你的偏好,你喜歡哪些方面的內(nèi)容?或者說你本人是什么性別、年齡段,都可以通過這種方式分析。所以可想而知,這些數(shù)據(jù)對于像Facebook這樣的互聯(lián)網(wǎng)公司是多么的重要。這些數(shù)據(jù)除了直接可以在上面做分析以外,還可以給BI工具提供一個輸入。這是09年的架構(gòu)。這個架構(gòu)到現(xiàn)在為止應(yīng)該有一些變化,但是Hadoop核心定位是沒有變的。包括國內(nèi)一些大的很著名的互聯(lián)網(wǎng)公司都借鑒了這樣的架構(gòu)。所以可想而知Hadoop在互聯(lián)網(wǎng)公司的作用是多么的重要。
下面講一下Hadoop的來源。Hadoop 是Doug做的這么一個軟件,02年他打算做一個網(wǎng)頁檢索軟件,沒有任何思路。03年Google發(fā)表了兩篇論文,他受到這兩篇論文的啟發(fā),把這兩篇論文主要的思想借鑒過來,形成了現(xiàn)在的Hadoop的雛形。06年的時候他命名這套軟件是Hadoop,這套軟件最早開始的是06年開始的。08年的時候Hadoop軟件成為了Apache的基金項目,雅虎在后面支撐這個軟件的開發(fā)。Hadoop它有一些特點,是全部用JAVA來寫的,它可以跑在我們常見的商用的高故障率的服務(wù)器上甚至PC上。
雅虎內(nèi)部人告訴我說說Hadoop是繼Linux以來最成功的開源軟件。Hadoop組成部分,包括克隆了Google的GISI系統(tǒng),包括克隆了并行計算框架,上面有很多不同的組成部分。它上面有MapReduce它可以提供一個接口,DBA可以利用這個接口寫數(shù)據(jù)處理。此外還有多其他的組成部分,整個這樣一套東西叫Hadoop。目前現(xiàn)在看起來這些所有上的東西都一個一個逐漸的變成了一些Apache的頂級項目了,但是我們通常把這一套叫Hadoop。
Hadoop HDFS體系結(jié)構(gòu):
它是多集群處理,利用每個機器硬盤處理。它的數(shù)據(jù)分成塊,這些塊是有副本的,這些副本是存在不同的機器上的。為什么要這么做呢?就是因為硬件有可能出故障,如果硬件出故障以后存儲在機器上的這個塊不可用了,但是因為也副本,所以其他機器上可以把相應(yīng)的塊拿出來用,所以整個系統(tǒng)可靠性非常高。
第二個就是處理流程。處理流程是兩個計算過程。第一個計算過程相當(dāng)于分配任務(wù),我可以把任務(wù)分幾百萬分,分到很多機器上去算,計算完了以后有一個歸約過程,把中間結(jié)果再歸約處理,最后得出結(jié)果。這種處理方向很適合做文本處理。再講一下我們做的實際工作:
我們做的工作是跟Facebook的合作,就是叫行列混合式數(shù)據(jù)存儲技術(shù),英文是RCFile。大家知道關(guān)系數(shù)據(jù)是一張表,這個表怎么存到硬盤上?有很多種不同的格式,我們選取的格式希望有利于節(jié)省存儲空間。比他們先進的地方就在于,我們用的是行列混合式,既不是行式,也不是列式,是混合在一起。這樣比純粹行存儲節(jié)省20%的空間。比如他們原來600臺機器存不下了,用這個模式就存下了。比純粹列式要節(jié)省23%。
第二個技術(shù)是CCIndex技術(shù),這個技術(shù)是希望在數(shù)據(jù)模型中間取一個折中,讓數(shù)據(jù)庫有查詢的能力。它最終的效果就是,我們比它最傳統(tǒng)的二級索引快10倍。
下面講一個實際應(yīng)用:我們是和淘寶合作,這是淘寶的一個應(yīng)用,叫數(shù)據(jù)魔方,它能夠把所有交易數(shù)據(jù)拿出來,去到敏感的,拿給第三方看,相當(dāng)于是數(shù)據(jù)服務(wù)。這個界面是淘寶網(wǎng)女裝行業(yè),一個月成交金額是35億6千萬人民幣,平均單價是179塊錢。我們做的工作是什么呢?我們做的工作主要是在硬件規(guī)模保持不變的前提下,把系統(tǒng)處理的數(shù)據(jù)時效范圍從7天擴大到3個月,數(shù)據(jù)量是幾個TB,這些數(shù)據(jù)中我們要實時的算出來,比如總金額、平均單價,平均件數(shù)等都要實時的算出來。對比之前的數(shù)據(jù),大概處理數(shù)據(jù)規(guī)模增大了一個數(shù)量級,而延遲甚至比原來的小。
總結(jié):大數(shù)據(jù)計算技術(shù)的發(fā)展趨勢就是三個字“大、快、準(zhǔn)”,我們目前處在的階段是“快”階段,“準(zhǔn)”這個事目前還沒有太好的技術(shù)能夠出現(xiàn)。
第二個就是數(shù)據(jù)計算模式是有變化的,以前是以計算為中心,以機器為中心,現(xiàn)在以數(shù)據(jù)為中心。在這樣的變化前提下,很多新的技術(shù)涌現(xiàn)出來,比如說Hadoop。出現(xiàn)了這些新的技術(shù),新的市場也會出現(xiàn)。目前看起來一些大的軟件廠商,比如說Oracle,它直接在它的Big Data里內(nèi)嵌了一個Hadoop做大數(shù)據(jù)處理。這些廠商也在關(guān)注Hadoop軟件。
第三,數(shù)據(jù)規(guī)模對傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的技術(shù)提出了挑戰(zhàn)。關(guān)系型數(shù)據(jù)庫技術(shù)也在經(jīng)歷一些變革。NoSQL技術(shù)是對關(guān)系數(shù)據(jù)庫的一個有利補充,這是實際需求導(dǎo)致的結(jié)果。實際需求就是量太大了,但是功能并不像SQL那么全,我只需要一個子集,這樣技術(shù)可以簡化,NoSQL技術(shù)比關(guān)系數(shù)據(jù)庫技術(shù)要簡單,但是它的價值取向是快,是可以擴展的,性能要好。