視頻網(wǎng)站的Big Data解決之道
概述
優(yōu)酷作為一家大型視頻網(wǎng)站,擁有海量播放流暢的視頻。我們秉承注重用戶體驗(yàn)這一產(chǎn)品技術(shù)理念,將絕大部分存儲(chǔ)用在視頻資源上。通過(guò)建設(shè)專用的視頻CDN,建立了可自由擴(kuò)展、性能優(yōu)異的架構(gòu),在提供更好用戶體驗(yàn)的同時(shí)優(yōu)化了存儲(chǔ)資源。在除視頻資源外的其他方面,我們也累積了海量數(shù)據(jù):僅運(yùn)營(yíng)數(shù)據(jù),每天收集到的網(wǎng)站各類訪問(wèn)日志總量已經(jīng)達(dá)到TB級(jí),經(jīng)分析及壓縮處理后留存下來(lái)的歷史運(yùn)營(yíng)數(shù)據(jù)已達(dá)數(shù)百TB,很快將會(huì)達(dá)到 PB級(jí),5年后數(shù)據(jù)量將會(huì)達(dá)到幾十PB級(jí)。
如何更好地處理和分析這些海量數(shù)據(jù),以挖掘出其中的價(jià)值?
挖掘數(shù)據(jù)中的價(jià)值
對(duì)企業(yè)來(lái)說(shuō),尤其是對(duì)于為用戶提供服務(wù)的行業(yè),僅提供基礎(chǔ)服務(wù)已經(jīng)越來(lái)越難應(yīng)付日趨細(xì)化的商業(yè)模式。如何為用戶提供差異化的優(yōu)質(zhì)服務(wù)成為這類企業(yè)必須解決的問(wèn)題。而數(shù)據(jù)好比燈塔,能為企業(yè)指引前進(jìn)的方向?;ヂ?lián)網(wǎng)、電信、金融等行業(yè)都在加大數(shù)據(jù)的探索及應(yīng)用力度,這為企業(yè)創(chuàng)造了可觀的經(jīng)濟(jì)效益。
對(duì)優(yōu)酷而言,通過(guò)用戶的每次播放流程,我們都對(duì)頁(yè)面瀏覽、評(píng)論收藏、視頻播放以及播放時(shí)的各種操作進(jìn)行了記錄。經(jīng)處理后的分析結(jié)果會(huì)反饋給不同的業(yè)務(wù)模塊,對(duì)包括產(chǎn)品、內(nèi)容運(yùn)營(yíng)、用戶的個(gè)性化推薦及廣告投放等方面的提升,都起到了關(guān)鍵作用。
網(wǎng)站頁(yè)面、客戶端的UI/UE的設(shè)計(jì)及效果,都需要數(shù)據(jù)進(jìn)行支持。通過(guò)A/B測(cè)試系統(tǒng),我們收集到用戶對(duì)不同UI下的操作反饋,進(jìn)而評(píng)估UI的改變對(duì)用戶的影響。
內(nèi)容方面,通過(guò)對(duì)用戶網(wǎng)絡(luò)情況的統(tǒng)計(jì):每次播放是否發(fā)生了緩沖,平均下載速度是多少等,進(jìn)行實(shí)時(shí)的統(tǒng)計(jì)和計(jì)算,獲取每個(gè)地區(qū)每個(gè)運(yùn)營(yíng)商下用戶的加載表現(xiàn),以此來(lái)決定CDN節(jié)點(diǎn)的分布和分配策略,為不同地區(qū)、不同運(yùn)營(yíng)商的用戶提供清晰流暢的視頻服務(wù)。
在推薦方面,通過(guò)對(duì)大量視頻播放行為的分析,歸納不同時(shí)長(zhǎng)、不同類型、不同內(nèi)容的視頻之間的相互關(guān)聯(lián),挖掘不同人群用戶的同質(zhì)化觀看習(xí)慣,對(duì)每次用戶的觀看進(jìn)行有針對(duì)性的后續(xù)推薦,并借助后續(xù)數(shù)據(jù)的分析,迭代地改善現(xiàn)有服務(wù),為用戶提供量身定制的推送服務(wù)。
數(shù)據(jù)對(duì)于優(yōu)酷的廣告精準(zhǔn)投放也起到了重要作用。優(yōu)酷的廣告系統(tǒng)支持對(duì)不同地域、頻道、標(biāo)簽及人群等條件的定向投放。在投放策略上,我們本著盡可能不影響用戶體驗(yàn)的原則,對(duì)于廣告長(zhǎng)度及投放頻次都進(jìn)行了限制。雖然這給投放造成了較大難度,但通過(guò)對(duì)各種細(xì)粒度的定向條件組合歷史數(shù)據(jù)進(jìn)行的分析,我們?cè)趶V告投放方面已經(jīng)相當(dāng)準(zhǔn)確。在投放階段,我們實(shí)時(shí)分析用戶屬性、訪問(wèn)情況及當(dāng)前廣告投放量,對(duì)每次投放動(dòng)態(tài)調(diào)整。
技術(shù)架構(gòu)
下面以優(yōu)酷的運(yùn)營(yíng)數(shù)據(jù)為例介紹我們的海量數(shù)據(jù)解決之道。我們的運(yùn)營(yíng)數(shù)據(jù)包括播放、用戶交互、搜索、廣告等,目前總計(jì)達(dá)數(shù)百TB,它們存儲(chǔ)在數(shù)百臺(tái)服務(wù)器上。我們主要使用的是內(nèi)部專門開(kāi)發(fā)的輕量級(jí)的分布式存儲(chǔ)及數(shù)據(jù)分析框架,應(yīng)用于一百臺(tái)左右的服務(wù)器集群,目前仍在使用。另外我們搭建了一個(gè)1000個(gè) Slot的Hadoop集群,并還在繼續(xù)擴(kuò)展??紤]到維護(hù)成本及擴(kuò)展性,未來(lái)我們會(huì)將全部業(yè)務(wù)遷移到Hadoop平臺(tái)上,以降低維護(hù)成本。另外基于 Hadoop及其上層的HBase、Hive等數(shù)據(jù)存儲(chǔ)產(chǎn)品,我們會(huì)開(kāi)發(fā)出一套數(shù)據(jù)處理框架,應(yīng)用于整個(gè)數(shù)據(jù)處理系統(tǒng)。
圖1 運(yùn)營(yíng)數(shù)據(jù)處理技術(shù)架構(gòu)
如圖1所示,根據(jù)業(yè)務(wù)類型的不同,我們收集到日志之后,按照不同時(shí)間策略先對(duì)數(shù)據(jù)進(jìn)行清洗。不失真的原始日志,按規(guī)定的格式直接以文件的形式存儲(chǔ)在Hadoop上,數(shù)據(jù)清洗轉(zhuǎn)換后的中間結(jié)果,會(huì)存儲(chǔ)在Hive數(shù)據(jù)倉(cāng)庫(kù)上;而一些粗粒度的匯總數(shù)據(jù),則寫到MySQL、HBase等數(shù)據(jù)庫(kù)中。
每天優(yōu)酷的日常數(shù)據(jù)處理任務(wù)多達(dá)數(shù)百個(gè),對(duì)時(shí)效性要求不同,任務(wù)的執(zhí)行策略也不同。需要準(zhǔn)實(shí)時(shí)查詢的,我們可以提供延遲10分鐘的數(shù)據(jù);其他任務(wù)也根據(jù)優(yōu)先級(jí)及緊急程度安排調(diào)度,而執(zhí)行中的資源的分配由系統(tǒng)動(dòng)態(tài)調(diào)整。
NoSQL探索之路
層出不窮的NoSQL技術(shù),無(wú)疑是現(xiàn)在極其熱門的領(lǐng)域,依托高可用性、高水平擴(kuò)展性、高效存取及支持MapReduce等特性使其在應(yīng)對(duì)Web2.0網(wǎng)站時(shí)比關(guān)系型數(shù)據(jù)庫(kù)更加得心應(yīng)手。
目前優(yōu)酷大量數(shù)據(jù)依然存儲(chǔ)在MySQL等平臺(tái)上,這是考慮到關(guān)系型數(shù)據(jù)庫(kù)大都經(jīng)歷了長(zhǎng)時(shí)間的實(shí)踐檢驗(yàn),比較成熟,遵循相同標(biāo)準(zhǔn),能獲得較好的支持。而且,主流關(guān)系型數(shù)據(jù)庫(kù)也都積極嘗試從海量數(shù)據(jù)等方面改進(jìn)產(chǎn)品。此外,NoSQL分Key-Value、document、column、圖等多種類型,特性各不相同,這種總稱屏蔽了彼此之間的差異;而且各NoSQL產(chǎn)品還在不斷變化,甚至API也有所更改,這在技術(shù)掌握上及維護(hù)上成本較高,畢竟找一個(gè)懂 MySQL及SQL的開(kāi)發(fā)工程師比找一個(gè)MongoDB專家要容易得多。
盡管如此,仍阻擋不住我們對(duì)NoSQL產(chǎn)品進(jìn)行嘗試的熱情:一方面對(duì)不同業(yè)務(wù)應(yīng)用適合的產(chǎn)品,另一方面對(duì)同類產(chǎn)品也在做評(píng)估對(duì)比。目前優(yōu)酷的在線評(píng)論業(yè)務(wù)已部分遷移到MongoDB,運(yùn)營(yíng)數(shù)據(jù)分析及挖掘處理我們?cè)谑褂肏adoop/HBase;在Key-Value產(chǎn)品方面,我們也在尋找更優(yōu)的 Memcache替代品,如Redis,相對(duì)于Memcache,除了對(duì)Value的存儲(chǔ)支持三種不同的數(shù)據(jù)結(jié)構(gòu)外,同一個(gè)Key的Value進(jìn)行部分更新也會(huì)更適合一些對(duì)Value頻繁修改的在線業(yè)務(wù);同時(shí)我們?cè)谒阉鳟a(chǎn)品中應(yīng)用了Tokyo Tyrant;對(duì)于Cassandra等產(chǎn)品我們也進(jìn)行過(guò)研究??梢哉f(shuō),我們會(huì)一直持續(xù)關(guān)注NoSQL技術(shù),未來(lái)可能會(huì)根據(jù)需要選擇合適的產(chǎn)品應(yīng)用到實(shí)際業(yè)務(wù)中。
目前NoSQL技術(shù)依然處于發(fā)展階段,只有少數(shù)蘊(yùn)涵優(yōu)秀的技術(shù),并最終幸免淘汰,與其他數(shù)據(jù)解決方案一起生存下來(lái),未來(lái)也許會(huì)有新的NoSQL產(chǎn)品出現(xiàn)。開(kāi)發(fā)人員,尤其是各大公司的技術(shù)團(tuán)隊(duì)在使用NoSQL項(xiàng)目的同時(shí),根據(jù)使用經(jīng)驗(yàn),會(huì)對(duì)一些針對(duì)特定使用場(chǎng)景的特性及服務(wù)加以抽象并實(shí)現(xiàn),形成類似于基于Hadoop平臺(tái)的Pig這類衍生項(xiàng)目。在這方面未來(lái)的發(fā)展?jié)摿κ蔷薮蟮模热缭贐I領(lǐng)域,目前的NoSQL產(chǎn)品與現(xiàn)有BI產(chǎn)品幾乎沒(méi)有交集。將來(lái)一些NoSQL產(chǎn)品應(yīng)該能夠通過(guò)現(xiàn)有主流BI產(chǎn)品直接訪問(wèn),或者提供自己的BI模塊。類似的功能也許會(huì)形成新的標(biāo)準(zhǔn),顛覆現(xiàn)有開(kāi)發(fā)模式。
機(jī)遇大于挑戰(zhàn)
海量數(shù)據(jù)時(shí)代對(duì)企業(yè)的影響,并非直接來(lái)自數(shù)據(jù),而在于社會(huì)的飛速進(jìn)步及不斷涌現(xiàn)的商業(yè)模式。2007年,微軟CEO鮑爾默說(shuō),Google公司現(xiàn)在幾乎是每年翻一番。優(yōu)酷從起步,到刷新5年多來(lái)美國(guó)IPO最大漲幅紀(jì)錄,只用了短短4年時(shí)間。而隨著變革速度不斷加快,各企業(yè)掉隊(duì)落伍的可能性已明顯增大。從海量數(shù)據(jù)中挖掘潛在價(jià)值,分析行業(yè)趨勢(shì),在短時(shí)間內(nèi)更新業(yè)務(wù)模式,優(yōu)化產(chǎn)品和服務(wù),提升核心競(jìng)爭(zhēng)力,將是企業(yè)需要持續(xù)解決的課題。
隨著數(shù)據(jù)量越來(lái)越大,并行計(jì)算得到了越來(lái)越普遍的應(yīng)用,新技術(shù)的產(chǎn)生使得技術(shù)選擇多元化,學(xué)習(xí)成本有所提高;同時(shí),在學(xué)習(xí)之后的應(yīng)用階段,開(kāi)發(fā)、測(cè)試及維護(hù)成本都大大降低,數(shù)據(jù)分析、挖掘及BI領(lǐng)域依舊會(huì)得到成型軟件的支持。因此,海量數(shù)據(jù)時(shí)代的技術(shù)人員,機(jī)遇反而大于挑戰(zhàn):一方面需要從關(guān)注開(kāi)發(fā)細(xì)節(jié),轉(zhuǎn)而關(guān)注各種新技術(shù)的特性;另一方面應(yīng)該具備更深的業(yè)務(wù)抽象能力。只有具備這樣的綜合能力,才能讓技術(shù)發(fā)揮更大的價(jià)值。
展望
目前,企業(yè)所掌握的數(shù)據(jù),還遠(yuǎn)沒(méi)有達(dá)到最細(xì)的粒度,隨著技術(shù)的發(fā)展和設(shè)備的廉價(jià)化,未來(lái)企業(yè)能夠收集到的數(shù)據(jù)還將呈非線性增長(zhǎng)。能夠?yàn)檫\(yùn)營(yíng)提供支持的新維度、新指標(biāo)也會(huì)被繼續(xù)發(fā)掘出來(lái)。分析的難度隨著維度和指標(biāo)的增多不斷加大,傳統(tǒng)的數(shù)據(jù)挖掘及BI產(chǎn)品將越來(lái)越難滿足需求。
在應(yīng)對(duì)海量數(shù)據(jù)的計(jì)算模型方面,目前MapReduce成為主流,大多數(shù)平臺(tái)和產(chǎn)品都在應(yīng)用MapReduce。而未來(lái),也許會(huì)有更好的或者針對(duì)特定領(lǐng)域更好的計(jì)算模型出現(xiàn)。目前Google在圖處理方面,已在使用Pregel模型;Yahoo!也在開(kāi)發(fā)新一代的MapReduce模型,以期從可靠性、可用性、可擴(kuò)展性、向后兼容、延遲及集群利用等方面,對(duì)現(xiàn)有模型進(jìn)行改進(jìn)。這類改進(jìn)會(huì)進(jìn)一步提高海量數(shù)據(jù)的計(jì)算效率。
并行計(jì)算及分布式系統(tǒng)未來(lái)的產(chǎn)品線應(yīng)會(huì)不斷豐富。風(fēng)靡一時(shí)的Hadoop并非完美,高吞吐量造成的高延遲、處理時(shí)的資源浪費(fèi)等,也都會(huì)是使用者需要考慮的問(wèn)題。會(huì)不會(huì)有替代品出現(xiàn),讓我們拭目以待。
對(duì)于具體企業(yè),不同企業(yè)可能選用不同的解決方案。一些中小企業(yè),通過(guò)購(gòu)買SaaS服務(wù),將數(shù)據(jù)提供給第三方服務(wù)商處理。服務(wù)商通過(guò)對(duì)多家同行企業(yè)的數(shù)據(jù)分析,尋找共性,再反饋給企業(yè)為其創(chuàng)造更大價(jià)值,實(shí)現(xiàn)了平臺(tái)提供者和使用者的雙贏。另外一些企業(yè)會(huì)通過(guò)租用PaaS及IaaS服務(wù)的方式,將相對(duì)不敏感的數(shù)據(jù)放到公有云上處理,以節(jié)約設(shè)備采購(gòu)及維護(hù)成本。對(duì)于企業(yè)的敏感數(shù)據(jù),會(huì)通過(guò)建立私有數(shù)據(jù)中心,搭建私有云來(lái)處理,而同時(shí)也會(huì)考慮用公有云平臺(tái)進(jìn)行互補(bǔ)。最終結(jié)果,數(shù)據(jù)會(huì)向一些大的節(jié)點(diǎn)集中,而大的節(jié)點(diǎn)也更有能力從掌握的海量數(shù)據(jù)中挖掘有用信息。這些信息通用性強(qiáng)的部分會(huì)被共享出來(lái),服務(wù)于社會(huì)。
對(duì)于優(yōu)酷來(lái)說(shuō),仍處于飛速發(fā)展階段,已經(jīng)在考慮未來(lái)自建數(shù)據(jù)中心,提高數(shù)據(jù)處理能力,從網(wǎng)站的運(yùn)營(yíng)中發(fā)掘出更多信息,為用戶提供更好的視頻服務(wù)。
【編輯推薦】
- 大數(shù)據(jù):價(jià)值在于分析 風(fēng)險(xiǎn)如何規(guī)避?
- 大數(shù)據(jù)下的數(shù)據(jù)分析平臺(tái)架構(gòu)
- 百度Hadoop分布式系統(tǒng)揭秘:4000節(jié)點(diǎn)集群
- Big Data技術(shù)綜述