大數(shù)據(jù)的重要性已毋庸置疑,但大數(shù)據(jù)的采集、存儲、處理、分析、研究,卻不是一朝一夕煉成的!數(shù)據(jù)平臺如何建設(shè),推薦系統(tǒng)如何運(yùn)算,等等,都是我們所關(guān)注的話題。2013年7月27日,CTO俱樂部走進(jìn)了騰訊大講堂,來自迅雷、騰訊和桉樹的三位講師齊聚一堂,分享了各自的大數(shù)據(jù)實(shí)施案例。
迅雷數(shù)據(jù)平臺建設(shè)及應(yīng)用案例
首先,迅雷基礎(chǔ)研發(fā)中心數(shù)據(jù)平臺技術(shù)總監(jiān)陳仕明,主要從三個方面介紹了“迅雷數(shù)據(jù)平臺建設(shè)及應(yīng)用案例”。

中型數(shù)據(jù)平臺
數(shù)據(jù)平臺可以分成中型數(shù)據(jù)平臺和大型數(shù)據(jù)平臺,中型數(shù)據(jù)平臺的主要特點(diǎn)是服務(wù)器資源、技術(shù)儲備和人員都比較有限。迅雷的數(shù)據(jù)分析模塊目前有500多臺服務(wù)器,4000多個CPU,存儲20P以上的數(shù)據(jù),磁盤有3000多塊,屬于中型數(shù)據(jù)平臺的規(guī)模。
迅雷的大數(shù)據(jù)架構(gòu)
中型數(shù)據(jù)平臺主要是基于開源已有的存儲和計算,做一些更上層的外延性的產(chǎn)品。
第一層是采集,采集分成實(shí)時采集和離線采用集,其中離線采集占了業(yè)務(wù)的大部分,主要用迅雷自己開發(fā)的Xrsync工具實(shí)現(xiàn)。有些數(shù)據(jù)需要涉及到實(shí)時計算,會同步發(fā),存起來之后ETL計算全部用開源計算框架。實(shí)時采集主要是采集日志文件,這種日志文件主要對應(yīng)業(yè)務(wù)服務(wù)器里邊所生成的日志。
數(shù)據(jù)存儲之后,依然是一個物理模型,為了降低維護(hù)成本,需要把技術(shù)人員的工作盡量抽出來,讓其他崗位比如數(shù)據(jù)分析師做更多的事情。這就需要把底層數(shù)據(jù)抽象為業(yè)務(wù)人員理解的數(shù)據(jù)模型,抽完之后在最下邊做了維護(hù)平臺,以及報表系統(tǒng),還有自主查詢。
最右邊有兩塊,一塊是認(rèn)證與授權(quán),從上到下所有東西都需要經(jīng)過認(rèn)證和授權(quán),作為一個公司級集中式的存儲平臺,每個部門存儲都會在這兒做,所以你必須保障數(shù)據(jù)安全和資源合理分配。迅雷的平臺認(rèn)證,全部采用kerberos認(rèn)證。數(shù)據(jù)存到HDFS上之后,會給每一個業(yè)務(wù),或者每個產(chǎn)品,開辟一個kerberos帳號,所有帳號的數(shù)據(jù)都只能放在這個帳號的home里去,包括這個帳號的Hive或者HBase都存在該目錄下,并控制存儲空間。
另一塊是事件驅(qū)動調(diào)度:首先,任務(wù)的依賴關(guān)系用數(shù)據(jù)打通。任務(wù)和任務(wù)之間的依賴關(guān)系其實(shí)質(zhì)是任務(wù)背后的數(shù)據(jù)之間的依賴關(guān)系,某一個數(shù)據(jù)跑成功了之后依賴該數(shù)據(jù)的任務(wù)才能跑。
其次,需要把后置依賴前置改成前置驅(qū)動后置,前置任務(wù)跑成功了之后,將該任務(wù)對應(yīng)的“數(shù)據(jù)事件”扔到調(diào)度總線里面去,由總線把需要依賴這個“數(shù)據(jù)事件”的其他任務(wù)調(diào)起來,當(dāng)然該任務(wù)能夠立即跑,還要考慮到底層計算引擎目前的負(fù)載等情況。

上圖是調(diào)度引擎大體的架構(gòu):最核心部分是調(diào)度總線,數(shù)據(jù)分為是Task和Job,Task維護(hù)計算邏輯,如執(zhí)行的SQL腳本等;Job維護(hù)調(diào)度邏輯,如依賴什么“數(shù)據(jù)事件”, 一個Task可以配置多個Job。最左邊是Web接口,前端通過該接口查詢?nèi)蝿?wù)狀態(tài),以及控制任務(wù)等。最右邊是計算環(huán)境的適配層。
數(shù)據(jù)平臺使用案例
迅雷會把收集來的數(shù)據(jù)做成數(shù)據(jù)模型,最重要的數(shù)據(jù)模型是一個用戶事件模型,所有的基于用戶端的這種行為數(shù)據(jù),都可以把它抽象成模型存進(jìn)去,這個模型用一句話概括就是,誰對誰的什么東西做了什么事情?
這個模型擁有很多緯度,如產(chǎn)品緯度,用戶緯度,時間緯度,客戶緯度、地域緯度,運(yùn)營商緯度,終端緯度,渠道緯度,事件緯度等。
這個模型能做什么:簡單的比如每個產(chǎn)品的上線用戶數(shù),每個用戶的活躍度,用戶的黏性,以及某個產(chǎn)品的用戶的地域分布,運(yùn)營商分布等,活躍用戶排名,最熱的資源排名,如哪些電影是最常看,發(fā)生某個事件所消耗時間是多少,或者某個商品的銷售收入等。
迅雷還構(gòu)建了一個用戶的染色庫,迅雷擁有幾億的用戶,但是這些用戶各有什么樣的特征?比如是聯(lián)通用戶還是電信用戶,還是某個小運(yùn)營商的用戶?還有興趣類標(biāo)簽,如游戲類標(biāo)簽,影視類標(biāo)簽等。游戲標(biāo)簽描述該用戶喜歡什么類型游戲,影視類標(biāo)簽描述用戶喜歡什么類型的影視;根據(jù)這些屬性我們可以更好的為用戶服務(wù)。
另外一個是資源的屬性庫。比如一個影視文件,在資源屬性庫擁有該文件對應(yīng)的電影的名稱,演員,以及電影類型等。
染色庫和資源屬性庫的應(yīng)用主要有:比如,可以計算視頻指紋,根據(jù)兩個視頻指紋相似度計算這兩部電影是不是一部電影。染色庫還會應(yīng)用在會員tips推廣中,迅雷會彈一些tips,為了提高tips的效果,提高點(diǎn)擊率,需要盡量精準(zhǔn)的投放。另外在看看里邊放廣告的時候,也需要盡量的精準(zhǔn),不能最好不要把一個女性的產(chǎn)品,給一個男屌絲推,這樣一般點(diǎn)擊率會很差。
騰訊精準(zhǔn)推薦
接下來,騰訊數(shù)據(jù)中心數(shù)據(jù)挖掘研究員肖磊,從業(yè)務(wù)的角度為我們介紹了騰訊的大數(shù)據(jù)應(yīng)用之一精準(zhǔn)推薦。他的演講主要包括四個部分:
騰訊做了什么
2012年的時候,騰訊贊助了KDDCup主要做了兩個事情,一個是微博上面的推薦,一個是廣告的推薦。具體到產(chǎn)品上面,包括騰訊視頻的推薦系統(tǒng),易迅首頁上的推薦,基于社交網(wǎng)絡(luò)廣告的推薦廣點(diǎn)通,還有朋友關(guān)系鏈的推薦等。這些推薦都是通過分析騰訊8億的活躍用戶做出的。
遇到的問題
肖磊認(rèn)為作為一個推薦系統(tǒng),首先要處理好3P之間的關(guān)系。
首先是用戶,其次是ITEM,第三是場景,針對不同的場景不同位置有不同的方法做應(yīng)用。
解決之道——3S
分別是數(shù)據(jù)、算法和系統(tǒng)。這三個是相輔相成的。
會基于用戶的基本信息和歷史數(shù)據(jù)構(gòu)建用戶畫像的體系,上圖中提到推薦的解決之道中,數(shù)據(jù)是排在第一位的,因?yàn)閿?shù)據(jù)是做好準(zhǔn)確推薦的立根之本。
兩大核心平臺
有兩大核心平臺做這件事情,一個平臺是分布式數(shù)據(jù)倉庫TDW,它基于開源的Hadoop和Hive進(jìn)行了大量優(yōu)化和改造。第二個是一套實(shí)時推薦的平臺——APOLLO,它有一些實(shí)時介入系統(tǒng)、流式計算系統(tǒng)、一個分布式的存儲系統(tǒng),同時還有一個很重要的推薦引擎。
8月30-31日,肖磊會在SDCC 2013(中國軟件開發(fā)者大會)上擔(dān)任演講嘉賓,更多內(nèi)容請關(guān)注大會官網(wǎng)。
合理利用桉樹-Hadoop構(gòu)建大數(shù)據(jù)平臺
最后,來自美國桉樹系統(tǒng)公司大中華區(qū)認(rèn)證講師楊大江,帶來了“合理利用桉樹-Hadoop構(gòu)建大數(shù)據(jù)平臺”的演講,主要介紹了如何結(jié)合云計算平臺和桉樹構(gòu)建一個大數(shù)據(jù)系統(tǒng)。
桉樹+Hadoop
桉樹的架構(gòu)主要分為三層:第一層叫云控制器;第二層是區(qū)域,桉樹分了三個數(shù)據(jù)中心,每一個數(shù)據(jù)中心都是一個可用區(qū)域;第三層是大量的虛擬化,以虛擬化技術(shù)為核心的一個云體系,桉樹的虛擬化支持多種技術(shù)。當(dāng)構(gòu)建一個大數(shù)據(jù)平臺的時候,桉樹和Hadoop一個是解決分的問題,一個解決合的問題。桉樹是以虛擬化為核心的,解決虛擬化資源調(diào)度問題,它和一般的虛擬化有一定區(qū)別。一般虛擬機(jī)是把單機(jī)進(jìn)行虛擬化,桉樹考慮把整個集群虛擬化。
云計算有一個重要的思想,單節(jié)點(diǎn)是不可靠的,隨時可扔。要靠一個軟件系統(tǒng)保證集群,這兩個系統(tǒng)結(jié)合優(yōu)勢構(gòu)建大數(shù)據(jù)系統(tǒng)的優(yōu)勢主要有:
提升Hadoop部署速度
提供Hadoop高可用和容錯能力
提升Hadoop環(huán)境資源利用率
安全隔離讓Hadoop落地更安全
實(shí)現(xiàn)Hadoop云端多租戶
集群易于維護(hù)和遷移
使用異構(gòu)集群實(shí)現(xiàn)高密度存儲和計算。

