專訪騰訊蔣傑:深度揭祕騰訊大資料平臺
大資料,這個詞越來越熱,很多人都在談大資料,其實很多張口閉口大資料的人,或許都不知道資料是如何產生、傳遞、儲存、運算到應用的。其實我一直感覺大資料這個東西有時候真的不是一般企業可以玩的溜的,特別是隨著傳統業務增長放緩,以及移動網際網路時代的精細化運營,對於大資料分析和挖掘的重視程度高於以往任何時候,如何從大資料中獲取高價值,已經成為大家關心的焦點問題。
騰訊業務產品線眾多,擁有海量的活躍使用者,每天線上產生的資料超乎想象,必然會成為資料大戶,為了保證公司各業務產品能夠使用更豐富優質的資料服務,騰訊的大資料平臺做了那些工作?具備哪些能力?記者採訪到了騰訊資料平臺總經理蔣傑先生,他將給大家揭祕騰訊的大資料平臺!
建設專業資料平臺、持續提升處理能力、貼身滿足業務需求、挖掘創造資料價值———蔣傑(騰訊大資料團隊使命)
CSDN: 首先還是請蔣總介紹一下自己和您的職業生涯。
蔣傑: 我是蔣傑,目前是騰訊資料平臺部的負責人。我的第一份工作其實並非在網際網路行業,而是在傳統 IT行業工作了五年。隨著網際網路在中國的爆發,我也從傳統IT行業轉移到了阿里巴巴,在那裡的五年也是我在網際網路行業起步和成長的五年。之後有機會與騰訊結緣,對我來說也是進一步提升和發揮的機會,於是就舉家由杭州南遷到深圳工作至今了!
十多年的職業生涯,轉換過公司也轉換了工作生活的城市,但一直不變的是我的工作始終圍繞著“資料”展開,無論是在傳統IT行業,還是之後的網際網路行業,“資料”始終是我工作的核心內容,而我自己最大的職業追求也離不開“資料”,我想可能未來十年到二十年之內我的工作還是會圍繞著“資料”,因為我熱愛大資料的技術,也在不斷髮掘資料中蘊藏的巨大價值,並相信資料在不斷地改變著我們的生活!
CSDN: 可否介紹一下目前騰訊資料平臺部的技術團隊規模和結構是怎樣的?
蔣傑: 目前我們資料平臺部共有 200多人。整個資料平臺是按照基礎平臺、核心應用、產品包裝和質量監控的思路分為四部分:
- 資料中心,負責建設管理騰訊大資料基礎平臺;
- 精準推薦中心,負責研發落地以資料探勘為核心的大資料應用;
- 產品中心,負責大資料產品的策劃和運營;
- 質量中心,負責我們的質量監控與保障。
CSDN: 能簡單說說騰訊目前的資料情況麼?
蔣傑: 要說騰訊的資料情況,得從不同的業務說起。其中主要包括以下5種:
- QQ:月活躍使用者超8億,最高同時線上1.9億;線上人際關係鏈超1000億;
- 微信:月活躍超3.5億;日均訊息量超50億;
- 空間:月活躍使用者超6億;日均相簿上傳超過4億;日寫操作總數過10億;
- 遊戲:騰訊遊戲月活躍使用者4.5億;手機遊戲月活躍使用者近2億;
- 網站:日均瀏覽量PC側超17億,手機側近13億;日訪問使用者量PC側近1.3億;手機側近8千萬;
從這些資料可以看到,騰訊每天的資料量是一個天文的數字, 目前最高日接入訊息條數8000億 ,日接入資料量200TB,併發分揀業務介面10000個 。
CSDN: 能不能詳細介紹一下這個平臺架構的架構設計思路?
蔣傑: 其實這些你都可以從騰訊目前的發展看出來,主要考慮的是資料開放、專業化、成本三點。
- 資料開放:使得公司資料集中形成資料開放,在保障資料安全性的前提下,提供自助化服務平臺,從人肉服務模式轉向平臺自動化服務方式,幫助BG資料分析人員通過自助服務的方式,降低人工成本,滿足快速增長的需求。
- 專業化:從提供大量獨立的系統/工具轉變向提供整合、一體化、自動化資料開發平臺服務。來源各個業務塊資料進行整合和深入挖掘產生使用者畫像,為業務提供有價值的服務,並且快速孵化更多的資料應用。
- 成本與效能:優化平臺儲存和計算方案、優化的資料模型和演算法、去除重複計算和儲存;通過建設大規模叢集,形成規模效應,提升平臺能力並降低成本;隨著平臺上的資料量、使用者數、任務數不斷增長,每個新使用者/新任務帶來的新增成本不斷降低,成本優勢可以不斷放大。
CSDN: 能不能詳細介紹一下這個平臺架構的構建過程?
蔣傑: 騰訊大資料平臺現在主要從離線和實時兩個方向支撐海量資料接入和處理,核心的系統包括 TDW、TRC和TDbank。
資料平臺部服務介紹
TDW是我們從2009年開始自研的騰訊分散式資料倉庫,我們基於開源的hadoop+hive架構做了大量優化,包括相容商業資料庫語法和hadoop單點消除及可擴充套件性提升等。從2011年正式釋出上線到2013 年初,TDW完成了對騰訊公司內部幾乎全業務的覆蓋,成為騰訊最大的離線處理平臺,目前接入的資料量已達到百P級別,並伴隨業務的發展和新業務的出現不斷快速增長。
2010年起,隨著業務對實時資料處理需求的增強,我們開始進行新的平臺規劃與建設:我們基於storm研發了騰訊實時計算平臺TRC,我們將社群的storm用java重新改寫以提升穩定性和效率,並且使它執行在我們的統一資源管理平臺GAIA上,進一步提升叢集效率和擴充套件能力;為了方便使用者使用,我們為TRC開發了SQL和Pig使用者介面,並且在此基礎之上進一步提供了視覺化拖拽式開發環境,使業務開發實時計算邏輯更加方便;目前TRC每天提供幾萬億次實時計算能力,在以效果廣告為代表的趨勢預測、交叉分析、實時統計等領域的應用上取得了非常好的效果。
與此同時我們在資料接入方面研發了實時資料接入和分發系統TDbank,這個系統使業務資料採集延遲從之前的天級別,縮短到當前的秒級別;我們主要對TDbank做了異構資料來源適配,跨城公網傳輸,資料高一致性保證,分散式訊息佇列等;目前TDBank每天收集的資料量接近10000億條,這些資料主要輸送給TDW和TRC,分別作離線分析和實時計算,可以說,這是我們成功支撐海量實時和離線處理的前提。
CSDN:能不能和我們詳細的介紹騰訊大資料平臺具體模組的底層如何實現以及它們的作用?
蔣傑: 剛才說到了騰訊大資料平臺有如下核心模組:TDW、TRC、TDBank、TPR和Gaia。簡單來說,TDW用來做批量的離線計算,TRC負責做流式的實時計算,TPR負責精準推薦,TDBank則作為統一的資料採集入口,而底層的Gaia則負責整個叢集的資源排程和管理。
Gaia
Gaia的目標是實現更高效的資源排程, 基於Yarn的通用資源排程平臺,提供高併發任務排程和資源管理,實現叢集資源共享、可伸縮性和可靠性,不僅可以為MR等離線業務提供服務,還可以支援實時計算,甚至線上service業務。
Gaia 技術特點:
- 強擴充套件性:支援單cluster萬臺規模 (已達到6000節點,14w+核,1250個pool)
- 高排程吞吐:毫秒級的下發效率(App併發3.5k,Container匹配時間0.2ms)
- 彈性記憶體管理:hardlimit+softlimit相結合充分利用整機資源
- 多維度資源管理:新增Network IO、Disk IO等資源管理維度,提升了隔離性
- 豐富的使用者api:為業務提供更便捷的容災、擴容、縮容和升級等方式
- 建立“on Gaia”生態圈:支援storm、spark、MR等各種應用
- 上層業務包括MR 、Hive、PIG、Strom 、Spark等
- 為業務提供自動的容災、資源管理與排程、許可權管理、自動擴容縮容支援等
- 單叢集8800節點,業內最大叢集
TDBank
TDBank是從業務資料來源端實時採集資料,進行預處理和分散式訊息快取後,按照訊息訂閱的方式,分發給後端的離線和線上處理系統。
TDBank構建資料來源和資料處理系統間的橋樑,將資料處理系統同資料來源解耦,為離線計算TDW和線上計算TRC平臺提供資料支援。目前通過不斷的改進,將以前Linux+HDFS的模式,轉變為叢集+分散式訊息佇列的模式, 將以前一天才能處理的訊息量縮短到2秒鐘!
從架構上來看,TBank可以劃分為前端採集、訊息接入、訊息儲存和訊息分揀等模組。前端模組主要針對各種資料形式(普通檔案,DB增量/全量,Socket訊息,共享記憶體等)提供實時採集元件,提供了主動且實時的資料獲取方式。中間模組則是具備日接入量萬億級的基於“釋出——訂閱”模型的分散式訊息中介軟體,它起到了很好的快取和緩衝作用,避免了因後端系統繁忙或故障從而導致的處理阻塞或訊息丟失。針對不同的應用場景,TDBank提供資料主動訂閱模式,以及不同的資料分發支援(分發到TDW資料倉庫,檔案,DB,HBase,Socket等)。整個資料通路透明化,只需簡單配置,即可實現一點接入,整個大資料平臺可用。
TDW
騰訊分散式資料倉庫。它支援百PB級資料的離線儲存和計算,為業務提供海量、高效、穩定的大資料平臺支撐和決策支援。基於開源軟體Hadoop和Hive進行構建,並且根據公司資料量大、計算複雜等特定情況進行了大量優化和改造。
目前單叢集最大規模達到6000臺、CPU(14萬核)、記憶體(380 TB)、磁碟( 7.2萬塊)、儲存容量(100 PB);每天Job數 100萬+、每天掃描資料量6.5 PB、儲存利用率85%、CPU利用率90%+、網路利用率90%+。
同時為了滿足挖掘分析與互動式實時查詢的計算需求,騰訊大資料使用了Spark平臺來支援挖掘分析類計算、互動式實時查詢計算以及允許誤差範圍的快速查詢計算,目前騰訊大資料擁有超過200臺的Spark叢集,並獨立維護Spark和Shark分支。
TRC
基於線上訊息流的實時計算模型,對海量資料進行實時採集、流式計算、實時儲存、實時展示的全流程實時計算體系。
TRC是基於開源的Storm深度定製的流式處理引擎,用JAVA重寫了Storm的核心程式碼。為了解決資源利用率和叢集規模的問題,重構了底層排程模組,實現了任務級別的許可權管理、資源分配、資源隔離,通過和Gaia這樣的資源管理框架相結合,做到了根據線上業務實際利用資源的狀況,動態擴容&縮容,單叢集輕鬆超過1000臺規模。為了提高平臺的易用性和可運維性,提供了類SQL和Piglatin這樣的過程化語言擴充套件,方便使用者提交業務,提升接入效率,同時提供系統級的指標度量,支援使用者程式碼對其擴充套件,實時監控整個系統運營環節。另外將TRC的功能服務化,通過REST API提供PAAS級別的開放,使用者無需瞭解底層實現細節就能方便的申請許可權、資源和提交任務。
核心技術:
- Java for Storm
純java語言實現,更好的可維護性 功能擴充:解決nimbus單點、度量(Metrics)、安全/許可權增加、動態升級
- Storm on Gaia
任務間資源隔離
靈活的許可權控制策略
更優異的容災能力
自動擴縮容
- PigLatin/SQL on Storm
過程化類SQL程式設計介面
降低實時計算業務技術門檻
提升業務開發效率
應用場景:
•精準推薦
•廣點通廣告推薦
•新聞推薦
•視訊推薦
•遊戲道具推薦
•實時分析
•微信運營資料門戶
•效果統計
•訂單畫像分析
•實時監控
•實時監控平臺 •遊戲內介面呼叫
TPR
以人為核心的資料探勘,提供“海量、精準、實時”的個性化推薦服務。
實現從天到分鐘的轉變
計算模式演進
應用場景:
- 使用者畫像的建立是精準推薦的基礎
虛擬使用者現實化,人口屬性的建立
長期興趣+短期興趣
定製化定向人群- 以效果廣告為代表的精準營銷
推薦週期短,實時性要求高
使用者短期興趣和即時行為影響力大
投放場景上下文和訪問人群特性- 以視訊推薦為代表的內容推薦
長期興趣的累積影響力大
時段和熱點事件
多維度內容相關性很重要- 以電商推薦為代表的購物推薦
長期+短期興趣+即時行為綜合
最貼近現實,季節與使用者生活資訊很關鍵
追求下單與成交,支付相關CSDN: 以上都是騰訊大資料平臺的架構,能不能和我們分享一下具體的產品?
蔣傑: 簡單說說TOD和MTA吧。TOD,Tencent Open Data,基於騰訊在業界領先的大規模計算叢集,提供資料採集、自助加工、任務排程等能力的雲端大資料解決方案。它的優勢是:
- 不用採購任何物理裝置,即開即用。
- 不用擔心資料量膨脹的時候無法擴充套件。
- 只需要開發業務邏輯,其他部署、執行、監控都交給TOD
MTA是騰訊雲分析是專業的移動應用資料運營平臺,支援iOS和Android。開發者可以方便地通過嵌入統計SDK,實現對移動應用的全面監測,實時掌握產品表現,準確洞察使用者行為。騰訊雲分析的優勢:
- 實時多維:多維度交叉分析,運營有的放矢
- 使用者畫像:使用者的興趣,年齡,性別,職業盡在掌握
- 雲釋出:一鍵釋出數十個Android應用市場
- 秒級實時:秒級實時,即時捕捉瞬息萬變
- 運維監控:實時監控耗時,錯誤,放心運維
- 遊戲模型:針對手遊玩家的生命週期分析
CSDN:開發中遇到了那些坑,您是怎麼邁過去的?使用什麼樣的硬體資源支撐了這個平臺?
蔣傑: 坑確實有不少,影響最大的主要有三個:
1、騰訊資料量“大”的坑:騰訊的使用者和產品數量都比較多,資料量大,資料分析的複雜度高,對底層技術平臺的要求自然很高。如此大量的資料和複雜分析,每天要高效、穩定的在我們的資料平臺上執行,對我們的平臺技術提出了很大挑戰。我們在系統的容災、監控、問題處理與恢復方面做了大量工作,以確保系統不會出現問題,或者是在做重大變更時,對業務的影響要儘可能的少。為了達到這個目標,在設計系統時,我們要做到無單點故障,所有的模組都是分散式的,我們現在基本上都做到了。
2、開源軟體的坑:為了構建多樣化的平臺,我們也積極吸收開源軟體進行快速原型搭建,但是真正在用的時候,會發現很多問題,有的問題可能只有騰訊這樣的資料規模才能遇到。我們過去幾年,花費了大量的人力物力,修復開源軟體中的bug,優化它的效能,並基於騰訊的業務特點進行定製。
3、成本的坑:當我們的大資料系統逐漸成熟好用時,業務的資料儲存和計算需求也開始暴增,隨之而來的平臺的成本壓力也非常大。平臺在過去幾年做了大量優化成本的工作,包括差異化壓縮、使資料相對文字有20倍的壓縮比、引入Hadoop Raid技術、使用估值演算法代替精確計算節省計算資源等,使整個平臺的單位成本大幅度下降。
我們的硬體採用公司定製的 PC Server,規模超過8000臺。每臺配備2T*12 STAT硬碟、64GB記憶體和雙路32核CPU。需要提到的是,我們硬體資源是通過GAIA排程系統管理的,TDW、TRC等系統不直接申請硬體機器資源,而是像GIAI申請需要的CPU、記憶體等資源。
CSDN:對你們來說,目前面對的最大挑戰是什麼?
蔣傑: 對我們來說最大的挑戰更多的是在技術層面,我們必須快速跟上,還要力爭引領技術的更新和換代,以應對網際網路業務的飛速變化,還有對於大資料日漸深入的應用帶來的更高要求,未來相信大資料的技術能力對於業務發展的影響會越來越大。
我們的定位始終是以支援公司內部的業務為主,但逐步把我們的大資料能力開放給社會服務於更多的人也是我們的責任,所以在市場方面我們的挑戰其實不是來自於商業層面,而是如何能讓開放的覆蓋面更廣,讓更多人分享我們提供的大資料服務,所以如何找到更多使用者的痛點,如何讓我們的服務更好地適配更多的使用者需求,這是我們持續面對的一項挑戰!
另外隨著大資料在社會各行各業的影響越來越廣泛深入,國家也開始對於大資料的相關政策給予更多的關注,我們一方面會在這些政策制定的過程中貢獻自己的經驗和建議,同時也會積極響應和配合國家一些相關政策進行落地執行。目前來看政策的制定只是讓大資料發展的步伐走得更穩健更安全,短期來看也許會讓我們在應用大資料的產品模式上放慢一些探索的步伐,長期來說相信不會對大資料的發展帶來太大的挑戰。