騰訊業(yè)務(wù)產(chǎn)品線眾多,擁有海量的活躍用戶,每天線上產(chǎn)生的數(shù)據(jù)超乎想象,必然會成為數(shù)據(jù)大戶。特別是隨著傳統(tǒng)業(yè)務(wù)增長放緩,以及移動互聯(lián)網(wǎng)時代的精細(xì)化運(yùn)營,對于大數(shù)據(jù)分析和挖掘的重視程度高于以往任何時候,如何從大數(shù)據(jù)中獲取高價值,已經(jīng)成為大家關(guān)心的焦點(diǎn)問題。在這樣的大背景下,為了公司各業(yè)務(wù)產(chǎn)品能夠使用更豐富優(yōu)質(zhì)的數(shù)據(jù)服務(wù),近年騰訊大數(shù)據(jù)平臺得到迅猛發(fā)展。

圖 1 大數(shù)據(jù)平臺核心模塊
從上圖可以看出,騰訊大數(shù)據(jù)平臺有如下核心模塊:TDW、TRC、TDBank和Gaia。簡單來說,TDW用來做批量的離線計(jì)算,TRC負(fù)責(zé)做流式的實(shí)時計(jì)算,TDBank則作為統(tǒng)一的數(shù)據(jù)采集入口,而底層的Gaia則負(fù)責(zé)整個集群的資源調(diào)度和管理。接下來,本文會針對這四塊內(nèi)容進(jìn)行整體介紹。
TDW(Tencent distributed Data Warehouse):騰訊分布式數(shù)據(jù)倉庫。它支持百PB級數(shù)據(jù)的離線存儲和計(jì)算,為業(yè)務(wù)提供海量、高效、穩(wěn)定的大數(shù)據(jù)平臺支撐和決策支持。目前,TDW集群總設(shè)備8400臺,單集群最大規(guī)模5600臺 ,總存儲數(shù)據(jù)超過100PB,日均計(jì)算量超過5PB,日均Job數(shù)達(dá)到100萬個。

圖 2 分布式數(shù)據(jù)倉庫
為了降低用戶從傳統(tǒng)商業(yè)數(shù)據(jù)庫遷移門檻,TDW基于開源Hive進(jìn)行了大量定制開發(fā)。在功能擴(kuò)充方面,SQL語法兼容Oracle,實(shí)現(xiàn)了基于角色的權(quán)限管理、分區(qū)功能、窗口函數(shù)、多維分析功能、公用表表達(dá)式-CTE、DML-update/delete、入庫數(shù)據(jù)校驗(yàn)等。在易用性方面,增加了基于Python的過程語言接口,以及命令行工具PLClient,并提供可視化的IDE集成開發(fā)環(huán)境,使得開發(fā)效率大幅度提升。另外,在性能優(yōu)化方面也做了大量工作,包括Hash Join、按行split、Order by limit優(yōu)化、查詢計(jì)劃并行優(yōu)化等,特別是針對Hive元數(shù)據(jù)的重構(gòu),去掉了低效的JDO層,并實(shí)現(xiàn)元數(shù)據(jù)集群化,使系統(tǒng)擴(kuò)展性提升明顯。
為了盡可能促進(jìn)數(shù)據(jù)共享和提升計(jì)算資源利用率,實(shí)施構(gòu)建高效穩(wěn)定的大集群戰(zhàn)略,TDW針對Hadoop原有架構(gòu)進(jìn)行了深度改造。首先,通過JobTracker/NameNode分散化和容災(zāi),解決了Master單點(diǎn)問題,使得集群的可擴(kuò)展性和穩(wěn)定性得到大幅度提升。其次,優(yōu)化公平資源調(diào)度策略,以支撐上千并發(fā)job(現(xiàn)網(wǎng)3k+)同時運(yùn)行,并且歸屬不同業(yè)務(wù)的任務(wù)之間不會互相影響。同時,根據(jù)數(shù)據(jù)使用頻率實(shí)施差異化壓縮策略,比如熱數(shù)據(jù)lzo、溫數(shù)據(jù)gz、冷數(shù)據(jù)gz+hdfs raid,總壓縮率相對文本可以達(dá)到10-20倍。
另外,為了彌補(bǔ)Hadoop天然在update/delete操作上的不足,TDW引入PostgreSQL作為輔助,適用于較小數(shù)據(jù)集的高效分析。當(dāng)前,TDW正在向著實(shí)時化發(fā)展,通過引入HBase提供了千億級實(shí)時查詢服務(wù),并開始投入Spark研發(fā)為大數(shù)據(jù)分析加速。
TDBank(Tencent Data Bank):數(shù)據(jù)實(shí)時收集與分發(fā)平臺。構(gòu)建數(shù)據(jù)源和數(shù)據(jù)處理系統(tǒng)間的橋梁,將數(shù)據(jù)處理系統(tǒng)同數(shù)據(jù)源解耦,為離線計(jì)算TDW和在線計(jì)算TRC平臺提供數(shù)據(jù)支持。

圖 3 數(shù)據(jù)實(shí)時收集與分發(fā)平臺
從架構(gòu)上來看,TBank可以劃分為前端采集、消息接入、消息存儲和消息分揀等模塊。前端模塊主要針對各種數(shù)據(jù)形式(普通文件,DB增量/全量,Socket消息,共享內(nèi)存等)提供實(shí)時采集組件,提供了主動且實(shí)時的數(shù)據(jù)獲取方式。中間模塊則是具備日接入量萬億級的基于“發(fā)布-訂閱”模型的分布式消息中間件,它起到了很好的緩存和緩沖作用,避免了因后端系統(tǒng)繁忙或故障從而導(dǎo)致的處理阻塞或消息丟失。針對不同應(yīng)用場景,TDBank提供數(shù)據(jù)的主動訂閱模式,以及不同的數(shù)據(jù)分發(fā)支持(分發(fā)到TDW數(shù)據(jù)倉庫,文件,DB,HBase,Socket等)。整個數(shù)據(jù)通路透明化,只需簡單配置,即可實(shí)現(xiàn)一點(diǎn)接入,整個大數(shù)據(jù)平臺可用。
另外,為了減少大量數(shù)據(jù)進(jìn)行跨城網(wǎng)絡(luò)傳輸,TDBank在數(shù)據(jù)傳輸?shù)倪^程中進(jìn)行數(shù)據(jù)壓縮,并提供公網(wǎng)/內(nèi)網(wǎng)自動識別模式,極大的降低了專線帶寬成本。為了保障數(shù)據(jù)的完整性,TDBank提供定制化的失敗重發(fā)和濾重機(jī)制,保障在復(fù)雜網(wǎng)絡(luò)情況下數(shù)據(jù)的高可用。TDBank基于流式的數(shù)據(jù)處理過程,保障了數(shù)據(jù)的實(shí)時性,為TRC實(shí)時計(jì)算平臺提供實(shí)時的數(shù)據(jù)支持。目前,TDBank實(shí)時采集的數(shù)據(jù)超過150+TB/日(約5000+億條/日),這個數(shù)字一直在持續(xù)增長中,預(yù)計(jì)年底將超過2萬億條/日。
TRC(Tencent Real-time Computing):騰訊實(shí)時計(jì)算平臺。作為海量數(shù)據(jù)處理的另一利器,專門為對時間延敏感的業(yè)務(wù)提供海量數(shù)據(jù)實(shí)時處理服務(wù)。通過海量數(shù)據(jù)的實(shí)時采集、實(shí)時計(jì)算,實(shí)時感知外界變化,從事件發(fā)生、到感知變化、到輸出計(jì)算結(jié)果,整個過程中秒級完成。

圖 4 實(shí)時計(jì)算平臺
TRC是基于開源的Storm深度定制的流式處理引擎,用Java重寫了Storm的核心代碼。為了解決了資源利用率和集群規(guī)模的問題,重構(gòu)了底層調(diào)度模塊,實(shí)現(xiàn)了任務(wù)級別的權(quán)限管理、資源分配、資源隔離,通過和Gaia這樣的資源管理框架相結(jié)合,做到了根據(jù)線上業(yè)務(wù)實(shí)際利用資源的狀況,動態(tài)擴(kuò)容&縮容,單集群輕松超過1000臺規(guī)模。為了提高平臺的易用性和可運(yùn)維性,提供了類SQL和Pig Latin這樣的過程化語言擴(kuò)展,方便用戶提交業(yè)務(wù),提升接入效率,同時提供系統(tǒng)級的指標(biāo)度量,支持用戶代碼對其擴(kuò)展,實(shí)時監(jiān)控整個系統(tǒng)運(yùn)營環(huán)節(jié)。另外將TRC的功能服務(wù)化,通過REST API提供PaaS級別的開放,用戶無需了解底層實(shí)現(xiàn)細(xì)節(jié)就能方便的申請權(quán)限,資源和提交任務(wù)。
目前,TRC日計(jì)算次數(shù)超過2萬億次,在騰訊已經(jīng)有很多業(yè)務(wù)正在使用TRC提供的實(shí)時數(shù)據(jù)處理服務(wù)。比如,對于廣點(diǎn)通廣告推薦而言,用戶在互聯(lián)網(wǎng)上的行為能實(shí)時的影響其廣告推送內(nèi)容,在用戶下一次刷新頁面時,就提供給用戶精準(zhǔn)的廣告;對于在線視頻,新聞而言,用戶的每一次收藏、點(diǎn)擊、瀏覽行為,都能被快速的歸入他的個人模型中,立刻修正視頻和新聞推薦。
Gaia:統(tǒng)一資源調(diào)度平臺。Gaia,希臘神話中的大地之神,是眾神之母,取名寓意各種業(yè)務(wù)類型和計(jì)算框架都能植根于“大地”之上。它能夠讓應(yīng)用開發(fā)者像使用一臺超級計(jì)算機(jī)一樣使用整個集群,極大地簡化了開發(fā)者的資源管理邏輯。Gaia提供高并發(fā)任務(wù)調(diào)度和資源管理,實(shí)現(xiàn)集群資源共享,具有很高的可伸縮性和可靠性,它不僅支持MR等離線業(yè)務(wù),還可以支持實(shí)時計(jì)算,甚至在線service業(yè)務(wù)。

為了支撐單集群8800臺甚至更大規(guī)模,Gaia基于開源社區(qū)Yarn之上自研Sfair (Scalable fair scheduler)調(diào)度器,優(yōu)化調(diào)度邏輯,提供更好的可擴(kuò)展性,并進(jìn)一步增強(qiáng)調(diào)度的公平性,提升可定制化,將調(diào)度吞吐提升10倍以上。為了滿足上層多樣化的計(jì)算框架穩(wěn)定運(yùn)行,Gaia除了CPU、Mem的資源管理之外,新增了Network IO,Disk space,Disk IO等資源管理維度,提高了隔離性,為業(yè)務(wù)提供了更好的資源保證和隔離。同時,Gaia開發(fā)了自己的內(nèi)核版本,調(diào)整和優(yōu)化CPU、Mem資源管理策略,在兼容線程監(jiān)控的前提下,利用cgroups,實(shí)現(xiàn)了hardlimit+softlimit結(jié)合的方式,充分利用整機(jī)資源,將container oom kill機(jī)率大幅降低。另外,豐富的API也為業(yè)務(wù)提供了更便捷的容災(zāi)、擴(kuò)容、縮容、升級等方式。
基于以上幾大基礎(chǔ)平臺的組合聯(lián)動,可以打造出了很多的數(shù)據(jù)產(chǎn)品及服務(wù),如上面提到的精準(zhǔn)推薦就是其中之一,另外還有諸如實(shí)時多維分析、秒級監(jiān)控、騰訊分析、信鴿等等。除了一些相對成熟的平臺之外,我們還在進(jìn)行不斷的嘗試,針對新的需求進(jìn)行更合理的技術(shù)探索,如更快速的交互式分析、針對復(fù)雜關(guān)系鏈的圖式計(jì)算。此外,騰訊大數(shù)據(jù)平臺的各種能力及服務(wù),還將通過TOD(Tencent Open Data)產(chǎn)品開放給外部第三方開發(fā)者。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:騰訊大數(shù)據(jù)平臺探究
本文網(wǎng)址:http://www.oesoe.com/html/consultation/10839316116.html