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

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

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

