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