有人將抱著平板在沙發上看《來自星星的你》描述為愜意的生活縮影;將對著電腦通過視頻學習一道美味菜肴的制作過程被定義為潮媽技能;將端著手機在地鐵觀看蘋果發布會定義為極客行為。的確,互聯網時代到來了,通過視頻網站在線瀏覽、分享新聞、電影、電視劇等已成為每個人的生活中不可或缺的一部分。展現在小小屏幕上的是豐富多彩的欄目,而藏在它背后的,卻是一個個不得停歇的數據中心。呈現豐富的內容并非一件易事,見你所愛,更是難上加難。
傳統大數據也為難的“為我推薦”
如何提高尋找視頻內容的效率,準確的為用戶推薦他們喜歡的視頻,避免推薦重復視頻雖然看起來只是視頻行業的小課題。這不僅需要海量用戶數據,更重要是通過底層技術實現對這些海量數據的分析與挖掘。作為中國網絡視頻行業領軍企業之一,優酷土豆很早就看到了大數據技術對公司業務發展的價值,并通過分析用戶的行為愛好、對視頻的題材偏好以及視頻播放歷史,增加了“為我推薦”模塊,使網站的視頻推薦更加個性化、智能化。
為了更好的實現個性化視頻推薦,2009年,優酷土豆開始使用Hadoop大數據平臺來進行數據的分析及挖掘。起初整個平臺平臺只有十多個節點,而到2012年集群節點已經達到150個,2013年更是達到了300個。但是隨著數據量的急劇增加以及業務的迅猛發展,每天優酷處理的數據量已突破200TB,優酷土豆的技術人員發現一些場景并不適合利用MapReduce進行處理。
優酷土豆的大數據平臺已使用多年,核心業務數據量的增長與數據處理速度的失衡成為優酷土豆Hadoop大數據平臺的一大瓶頸。這個問題主要表現在三個方面:首先,在BI方面,分析師提交任務后需要等待很久才得到結果。其次,在進行一些模擬廣告投放之時,在調優、篩選方面的計算量十分大,對計算效率的要求也較高,用Hadoop消耗資源過大而且響應較慢。同時,MapReduce在機器學習和圖計算的迭代運算方面不僅需要耗費大量資源,處理速度也不盡人意。
優酷土豆集團大數據團隊大數據平臺架構師傅杰介紹道:“雖然很多互聯網企業都在用MapReduce來處理自己的業務,但是由于優酷的視頻量大概在2億的級別,視頻的關系量目前在10億的級別,這個級別的數據量利用MapReduce來計算CPU資源消耗比較高,而計算效率比較低,單純依靠MapReduce框架已經無法滿足視頻推薦、廣告投放效果預估等情景對實時性和準確性的要求。”
和英特爾一起Spark/Shark
為此,優酷土豆在英特爾公司的幫助下率先嘗試了Spark/Shark內存計算框架來解決多次迭代以及復雜的算法。以計算實力著稱的英特爾,在項目中在軟件優化、方案設計、Scala語言培訓等方面給優酷土豆提供了多方面的幫助,以過硬的軟實力及對整個行業的深入洞察,與優酷土豆的需求不謀而合。
作為典型的互聯網公司,優酷土豆大數據平臺主要應用在廣告、日常報表、推薦系統等核心業務上。隨著對低延時的、實時要求很高的應用場景的增多,Spark/Shark在快速報表,交互式查詢,做Ad-hoc的查詢的表現,機器學習以及迭代式算法方面的優越性吸引了優酷土豆。Spark/Shark可每次將彈性分布式數據集(RDD)操作之后的結果存入內存中,下次操作可直接從內存中讀取,省去了大量的磁盤IO,效率也大幅提升。
在瞬息萬變的互聯網市場,用戶的個性化需求越來越多,而將Spark/Shark集成到優酷土豆原有的大數據平臺后,在用戶偏好分析、Top-N榜單計算等方面看到了喜人的變化。“與前幾年不同,為了更加精準的為用戶做出視頻推薦,我們已經不再是簡單的匹配視頻的元信息了。計算視頻與視頻之間的相似關系,我們用到了圖計算。利用圖計算,我們將搜集到的視頻圖譜做聚類,然后再推薦給用戶。”優酷土豆集團大數據團隊技術總監盧學裕介紹道,“通過測試與對比,我們發現,計算相同規模的數據量,以前在單機上實現需要80多分鐘,而在四臺節點的Spark集群上運算時間縮短到了5.6分鐘。”
通過混搭的方式,Hadoop與Spark/Shark結合的架構不僅使計算資源能夠更加協調的被利用,也完善了優酷土豆的大數據分析,而重復視頻推薦、刷瀏覽量沖擊榜單的情況也減少了很多。作為國內視頻行業第一家部署Spark/Shark解決方案的公司,優酷土豆在Spark/Shark方面的經驗對整個視頻行業有突出的價值。未來,雙方也將繼續進行深入合作,將整體方案進一步優化,并分享給更多行業合作伙伴,幫助他們更好的解決業務中面臨的大數據挑戰。