tft每日頭條

 > 科技

 > 優酷用戶大數據

優酷用戶大數據

科技 更新时间:2024-07-19 22:21:17

在本文中優酷數據中台的數據技術專家門德亮分享了優酷從Hadoop遷移到阿裡雲MaxCompute後對業務及平台的價值。

本文内容根據演講視頻以及PPT整理而成。

大家好,我是門德亮,現在在優酷數據中台做數據相關的事情。很榮幸,我正好見證了優酷從沒有MaxCompute到有的這樣一個曆程,因為剛剛好我就是入職優酷差不多5年的時間,我們正好是在快到5年的時候,去做了從Hadoop到MaxCompute的這樣一個升級。這個是2016年5月到2019年現在的5月優酷的發展曆程,上面是計算資源,下面是儲存資源。大家可以看到整個用戶數,還有表的數據,實際上是在呈一個指數式增長的。但是在2017年5月,當優酷完成了整個Hadoop遷移MaxCompute後,優酷的計算消耗,還有儲存的消耗實際上是呈下降趨勢的,整個遷移得到了一個非常大的收益。

優酷用戶大數據(優酷背後的大數據秘密)1

下面說一下優酷的業務特點。

第一個特點從大數據平台整個的用戶複雜度上面,不止是數據的同學和技術的同學在使用,還會包括一些BI同學,測試同學,甚至産品運營都可能去使用這個大數據的平台。

第二個特點就是業務複雜,優酷是一個視頻網站,它有非常複雜的業務場景,從日志分類上,除了像頁面浏覽,還會有一些播放相關的數據、性能相關的數據。從整個的業務模式上,有直播、有會員、有廣告、有大屏等這樣一些非常不一樣的場景。

第三個特點,就是數據量是非常巨大的,一天的日志量會達到千億級别,這是一個非常旁大的數據量,而且會做非常複雜的計算。

第四個是比較有意思的,不管是小公司、大公司,對成本的意識是非常高的。優酷也是有非常嚴格的預算,包括在阿裡集團内是有非常嚴格的預算系統的,但是我們也經常會去做一些重要的戰役,像雙十一戰役,像我們暑期的世界杯戰役,還有春節也會搞各種戰役。這樣的話,其實對計算資源的彈性要求是非常高的。

基于上面的優酷的業務特點,我整理了MaxCompute可以完美的支持我們業務的幾個特點。

優酷用戶大數據(優酷背後的大數據秘密)2

第一個,簡單易用。

第二個,完善的生态。

第三個,性能非常強悍。

第四個,資源使用非常彈性。

第一個特點,簡單易用。MaxCompute有一個非常完整的鍊路,不管是從數據開發,還是數據運維,包括數據集成,數據質量的管控,還有整個數據地圖,數據安全。當年優酷從Hadoop遷到MaxCompute之後,我們最大的體會是自己不用半夜經常起來去維護集群了,不用去跑任務了,寫一個任務,别人之前提一個需求過來,我可能要給他排幾周,而現在我可以告訴他,我給你馬上跑一下,就可以出來了。包括之前像分析師BI還要登錄客戶端,寫腳本,自己寫調度,經常會說我的數今天為什麼沒出來?包括高層看的數,可能要到12點鐘才能出來。而現在基本上所有重要的數據都會在7點鐘産出,包括一些基本的業務需求,其實分析師或者産品,他們自己都可以實現了,不需要所有需求都提到數據這邊。

優酷用戶大數據(優酷背後的大數據秘密)3

第二個特點,完整的生态。優酷在2017年之前是完全基于Hadoop的生态,遷到MaxCompute之後,是基于阿裡雲提供的Serverless大數據服務的生态。大家可以在開源上看到的組件,在整個的MaxCompute上都是有的,而且比開源的要更好用、更簡單。從架構圖上可以看到,我們中間是MaxCompute,左側依賴的Mysql、Hbase、ES、Redis這些都是由同步中心去做一個雙向的同步。右側會有資源管理、資源監控、數據監控,包括數據資産,還有一些數據規範。我們下層的數據輸入,包括一些集團的采集工具,再往上邊,有提供給開發人員用的DataWorks,包括一些命令行的工具;有提供給BI人員用的QuickBI及數據服務。

優酷用戶大數據(優酷背後的大數據秘密)4

第三個特點,強悍的性能,MaxCompute支撐了優酷EB級的數據存儲,千億級的數據樣本分析,包括千億級的數據報表,10W級實例的并發、任務。這些在之前維護Hadoop的時候,是想都不敢想的。

優酷用戶大數據(優酷背後的大數據秘密)5

第四個特點,資源使用的彈性。我們在2016年遷移之前,其實優酷的Hadoop集群規模已經達到了一千多台,這個當時還是一個比較大的規模。當時我們遇到了很多問題,包括像NameNode 這種内存的問題,機房沒有辦法再擴容的問題,當時是非常痛苦的,包括一些運維管理上面的問題。我們不斷的去問運維要資源,運維告訴說,說你們已經花了多少多少資源,花了多少多少錢。我們面臨的問題是計算資源如何按需使用,夜裡的時候作業很多,到了下午之後,我的整個集群都空下來了,沒有人用,造成了浪費。其實MaxCompute完美的解決了這個問題。

優酷用戶大數據(優酷背後的大數據秘密)6

第一個,它是按用量計費的,不是說給你多少台機器,然後就收你多少錢的,真的是你用了多少資源收多少錢的,這個在成本上來說,比自己去維護集群,可能是一個砍半(降50%)這樣的收益。

第二個,實際上MaxCompue計算資源是可以分時的,比如說生産隊列,淩晨的時候會調高一些,保證報表能夠盡快出來。到白天時候,讓開發的計算資源高一些,可以讓分析師、開發去臨時跑一些數據,會更順暢一些。

第三個,MaxCompute快速的擴容能力,比如說突然有一個比較強的業務需求,發現數據跑不動了,計算資源不夠,所有的隊列都堵死了,這個時候其實可以直接跟運維說一聲,幫忙一鍵擴容,他兩秒鐘敲一個命令就搞定了。這樣的話,所有的資源可以迅速的消化下去。

優酷用戶大數據(優酷背後的大數據秘密)7

上面是優酷為什麼采用MaxCompute,下面是在優酷的業務場景下,我們一些典型的方案、應用。這張圖實際上是優酷,包括可能現在阿裡集團内部一些非常典型的技術架構圖。中間可以看到,MaxCompute在中間核心的位置,左側主要是一個輸入,右側是一個輸出的趨向,綠色的線是一個實時的鍊路,包括現在我們從整個的數據源上,比如DB也好或者服務器的本地日志Log也好,我們通過TT&Datahub存儲到MaxCompute上面做分析。當然現在非常火的Flink實時計算,其實是作為一個實時處理的鍊路。

包括DB的同步,除了實時的鍊路,DB也會去通過按天/按小時,把數據同步到MaxCompute,數據計算結果也可以同步到Hbase、Mysql這種DB上面。再通過統一的服務層對應用提供服務。下面這個是機器學習Pai做的一些算法訓練,再把訓練的結果通過OSS傳到一個算法的應用上面去。

優酷用戶大數據(優酷背後的大數據秘密)8

這張圖可能也是業界比較流行的一個數倉分層的圖,因為我們這邊是數據中台,所有的數據都是統一從ods層cdm層,然後ads層,去一層一層的往上去做精細,再到最上面,通過接口服務、文件服務、SQL服務,去提供多樣化的服務。再往上面,提供對内的一些數據産品,對高管、對小二,可能還有一些對外的,比如說像優酷的播放數,包括熱度這些對應用的數據。

優酷用戶大數據(優酷背後的大數據秘密)9

這張圖其實就是我們從Hadoop遷到MaxCompute平台上以來,兩個非常經典的案例。我們通過數據中台對不同場景的用戶打通,來去賦能到兩個不同的場景,提升業務價值。

第二個,可能是内部的,我們通過優酷,還有集團内部的一些BU去做換量,我們通過統一的标簽去做樣本放大,把優酷的量導給其它的BU,把其它BU的量導給優酷,這樣去達到一個共赢的效果。

優酷用戶大數據(優酷背後的大數據秘密)10

這張圖大部分互聯網公司不太會涉及到,就是關于反作弊的問題。這個是我們在MaxCompute做的一個反作弊的架構,通過原始的數據去提取它的特征,然後再通過算法模型,包括機器學習、深度學習、圖模型去支持流量反作弊、渠道反作弊等等。再通過業務場景上反作弊的監控工具,把監控到的作弊信息去打一個黑白樣本,再把這個黑白樣本跟特征一起來不斷的疊代優化算法模型。同時針對算法模型,做一個模型的評價,不斷來完善反作弊體系。

最後一點,其實還是跟成本相關,在日常使用中,一定是有小白用戶或者一些新來的用戶去錯誤的使用或者不在乎的使用一些資源,比如經常會有一些實習生或者是非技術的同學,如分析師,一個SQL消費比較高,這個其實是非常浪費資源,而且可能他一個任務,讓其他所有人的任務都在這兒等着排隊,實際上我們會去對整個的資源做一個治理。

從節點的粒度上,通過大數據來治理大數據,我們可以算出哪些表産出來之後,多少天沒有被讀取的,包括它的訪問跨度可能沒有那麼大的,我們會去做下線或者去做治理,有一些業務場景可能并不是非常的重要或者它的時間要求沒有那麼高,比如一些算法訓練,可以去做一些錯峰的調度,保證水位不要太高。從MaxCompute任務的角度,可以算出哪些任務有數據傾斜、哪些數據可能會有相似計算,哪些任務需要去做MapJoin,哪些任務需要去做一些裁剪,然後來節省它的IO。還有哪些任務會去做暴力掃描,掃一個月、掃一年的數據,哪些數據可能會有這樣一個數據膨脹,比如說它做了CUBE之類的這種複雜計算,一些算法模型的疊代;我們通過數據計算出來的這些迹象,去反推用戶,來去提高它的這樣一個數據的質量分,來去達到我們降低整個計算資源的目的。

在計算平台的角度,我們也持續的在使用MaxCompute推出的一些非常高級的用法,比如我們這邊的HBO、Hash Cluster、Aliorc,HBO就是我們基于一個曆史的優化,這樣避免了用戶不知道怎麼調參,我可能為了自己任務快一點,就調一個特别大的參數,這樣的話,對集成的資源是非常浪費的。通過這個功能,用戶就不用去調參數,集群自動調好,用戶就寫好自己業務邏輯就好了。

優酷用戶大數據(優酷背後的大數據秘密)11

第二塊,可能就是最近兩年推出的Hash Cluster,當時在使用Hadoop的時候經常會出現,兩個大表Join的時候計算不出來,這個Hash Cluster其實是一個優化的利器。大表跟小表Join,可以做一些分發,做一些優化。大表跟大表就涉及到一個排序的問題。這個Hash Cluster,實際上就是提前把數據排好,中間省掉很多計算環節,來達到效率提升的目的。

第三個,Aliorc,在一些固定的場景上面,可以穩定的提升20%的計算效率。

第四個,Session。對一些比較小的數據,直接就放到SSD或緩存裡面,一個節點下遊有100個葉子場景,是非常友好的,因為低延遲秒出結果。同時,優酷也在使用Lightning解決計算加速,這個是在一個計算架構方案上的優化,它是一個MPP的架構。

優酷用戶大數據(優酷背後的大數據秘密)12

最後一頁是存儲的優化,因為像一些關鍵的原始數據或者是需要審計的數據是不能删的,永久不能删的。實際上就會造成我們數據存儲的趨勢是一直往上不減的,計算會在某一個時間點達到一個平衡。當前用這麼多的計算資源,再往後,其實應該也不會再大漲了,比如說舊的業務邏輯下掉了,會換新的業務邏輯,這樣會保持在一個相對平穩的波動上面。但是儲存,因為它有一些曆史的數據是永遠不能删的,可能會出現一直在增長,而且是指數級的。所以我們也會持續關注存儲的情況,我們主要有四個手段。

第一個,還是通過大數據來治大數據,去看哪些表它的訪問不夠或者它的訪問跨度不夠。就是對一些生命周期的優化,來去控制它的增速。包括下面的,剛才提到的Aliorc,實際上是做壓縮的,我們會去做一些大字段的拆分,來提高壓縮的比例。

OK,這個是優酷在MaxCompute中的一些應用場景,感謝大家的聆聽。

作者:隐林

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved