解析百度開放云分布式計算平臺對大數(shù)據(jù)的處理
  • 更新時間:2024-10-30 19:24:41
  • 建站經(jīng)驗
  • 發(fā)布時間:2年前
  • 459

百度開放云總經(jīng)理劉旸看來,當今世界正面臨著由技術(shù)突破帶來的全行業(yè)升級,在這場商業(yè)劇變中,背后是三個重要的「重新定義」:第一,云計算重新定義了「IT」。它改變了企業(yè)所需要的 IT 資源的擁有與供給的方式,基于互聯(lián)網(wǎng)級的資源管理平臺,徹底改變了傳統(tǒng)企業(yè)的 IT 模式,為新的商業(yè)創(chuàng)新提供了可能;


第二,大數(shù)據(jù)重定義了「資產(chǎn)」,相較于以往的重資產(chǎn),企業(yè)在經(jīng)營中不斷生成的數(shù)據(jù),將成為企業(yè)未來繼續(xù)生存并保持競爭力的砝碼;第三,人工智能重定義了「效率」,通過語音、圖像、視頻、自然語言識別和智能處理等技術(shù),讓傳統(tǒng)的計算機具備更為強大的能力,大幅提升工作效率。


基于以上三個重新定義,百度開放云的重新堆棧也分為三層:云計算層、大數(shù)據(jù)應(yīng)用層、和人工智能層。


處理大數(shù)據(jù)無非以下四個步驟:

收集:原始數(shù)據(jù)種類多樣,格式、位置、存儲、時效性等迥異。數(shù)據(jù)收集從異構(gòu)數(shù)據(jù)源中收集數(shù)據(jù)并轉(zhuǎn)換成相應(yīng)的格式方便處理。

存儲:收集好的數(shù)據(jù)需要根據(jù)成本、格式、查詢、業(yè)務(wù)邏輯等需求,存放在合適的存儲中,方便進一步的分析。


變形:原始數(shù)據(jù)需要變形與增強之后才適合分析,比如網(wǎng)頁日志中把IP地址替換成省市、傳感器數(shù)據(jù)的糾錯、用戶行為統(tǒng)計等。


分析:通過整理好的數(shù)據(jù)分析what happened、why it happened、what is happening和what will happen,幫助企業(yè)決策。


其實,如果涉及到“大數(shù)據(jù)”,不得不提百度最大的業(yè)務(wù)——搜索。百度搜索已經(jīng)收錄全世界超過一萬億的網(wǎng)頁,每天響應(yīng)中國網(wǎng)民大約幾十億次的請求。除此之外,百度還有另外20多個用戶過億的產(chǎn)品線,而且各個產(chǎn)品底層的大規(guī)模數(shù)據(jù)處理,都需要使用百度團隊維護的大數(shù)據(jù)處理平臺。



百度分布式計算平臺:離線引擎優(yōu)化

關(guān)于MapReduce

首先介紹主要的離線計算模型——MapReduce,百度從2007年開始引進Hadoop 0.15.1,隨后快速發(fā)展,2011年百度的MR單集群規(guī)模達到5000臺,到2013年已經(jīng)多達1.3萬臺,這也是截止到目前為止全世界最大的單集群。Hadoop全集群規(guī)模為10萬量級, 作業(yè)量達到了百萬量級,日均CPU利用率超過80%,遠超業(yè)界同行,百度開放云(http://cloud.baidu.com)底層依賴的大規(guī)模集群調(diào)度、資源隔離等技術(shù)能力世界領(lǐng)先。除了在規(guī)模方面不斷擴大,百度一直在Hadoop性能分析方面進行了大量的優(yōu)化。2013年的測試結(jié)果顯示,百度內(nèi)部MR實現(xiàn)相比于開源Hadoop性能提升30%。典型優(yōu)化,例如Hadoop中的Shuffle,百度將其做成一個統(tǒng)一的shuffle服務(wù),不再占用Map或Reduce槽位。比如對關(guān)鍵熱點函數(shù)采用SSE向量化等。

2014年,百度繼續(xù)對計算引擎做了大幅優(yōu)化, Native C++實現(xiàn)的DAG引擎正式上線。下圖是一個 4輪MR Job實現(xiàn)的典型業(yè)務(wù)流示例,DAG引擎上線后,可以優(yōu)化成一個DAG作業(yè),可以避免3次Reduce寫多副本引入的磁盤IO及網(wǎng)絡(luò)IO,還可以規(guī)避2次Map讀HDFS的IO以及處理耗費。

下圖是一個真實業(yè)務(wù)由SQL計算表示層翻譯下來的,基于MR引擎時,SQL會翻譯成25個MR JOB,如果百度把它優(yōu)化成DAG,能夠避免很多次磁盤IO操作。在優(yōu)化之后,運行時間直接縮減到1個小時,優(yōu)化前后的差異非常顯著。

內(nèi)存流式Shuffle

2014年,百度對Shuffle進行重大重構(gòu),初期實習(xí)生同學(xué)完成的Demo以BaiduSort名義參與了2014年Sort BenchMark大數(shù)據(jù)排序國際大賽,并獲得冠軍(2015年百度沒再參加,國內(nèi)其他公司以同樣技術(shù)通過更大規(guī)模集群刷新記錄)。2015年,新Shuffle技術(shù)完成全面上線。Hadoop默認Shuffle實現(xiàn)為基于磁盤Pull模式,計算過程顯式分成Map、Shuffle、Reduce過程;Baidu研發(fā)的新Shuffle采用內(nèi)存流式Push模式,Map端完成部分記錄處理后直接從內(nèi)存中將計算結(jié)果推送給下游。

舉例來說,Map處理256MB輸入數(shù)據(jù),在內(nèi)存流式Shuffle模式下,處理完100條記錄以后,直接通過內(nèi)存推送到下游,這樣就形成流水線方式處理。不再有顯式的Shuffle階段。

目前,該Shuffle組件為通用組件,正逐步推廣到其他分布式計算平臺中。

百度分布式計算平臺:系統(tǒng)架構(gòu)演進

前面重點介紹了百度開放云BMR服務(wù)中涉及到的規(guī)模、性能方面優(yōu)化思路和效果,接下來跟大家一起分享一下,百度遇到的整體架構(gòu)方面挑戰(zhàn)以及優(yōu)化思路。

2012年系統(tǒng)架構(gòu)中,最主要的兩個離線計算平臺,左邊是以MapReduce模型為主的批量計算平臺BMR,右邊是MPI /BSP模型為主的大規(guī)模機器學(xué)習(xí)平臺BML。從最下面可以看到,MapReduce和MPI模型底層硬件就有較大差異。Hadoop分布式文件系統(tǒng)多副本以及強大的故障處理機制,使得Raid卡完全沒有必要,采用多塊超大容量SATA硬盤非常適合。

而MPI差別較大,MPI是一個消息傳輸框架,它在設(shè)計之初就沒有考慮太多異常處理,因此它對底層系統(tǒng)可靠性要求非常高。百度采用了非常高配置的服務(wù)器,例如帶Raid卡的sas硬盤,超大內(nèi)存、萬兆互聯(lián)等。

BMR Hadoop由大量SATA硬盤的服務(wù)器構(gòu)成,存儲系統(tǒng)為HDFS,資源調(diào)度層面百度有自研的調(diào)度器ARK(與社區(qū)Yarn比較類似)。而BML大規(guī)模機器學(xué)習(xí)平臺上,支持的業(yè)務(wù)樣本超過數(shù)百億計量級,特征規(guī)模也遠超百億。百度在運行機器學(xué)習(xí)時,需要先啟動MapReduce,然后再將數(shù)據(jù)從HDFS分發(fā)到各個MPI節(jié)點,這種方式對網(wǎng)絡(luò)帶寬的要求很高。

系統(tǒng)部同事持續(xù)改進內(nèi)網(wǎng)帶寬的同時,BML平臺層面也在思考應(yīng)該如何解決跨MR和MPI倆大集群間的日益嚴重的網(wǎng)絡(luò)帶寬問題。

另外還有一個需求:MPI是一種事務(wù)性調(diào)度模型,比如一個業(yè)務(wù)需要200臺機器,如果平臺此時只有199臺機器空閑,實際也很難用起來(除非修改提交參數(shù),但涉及輸入數(shù)據(jù)重新分塊處理等比較復(fù)雜)。另外MPI計算往往顯式分為計算、傳輸、計算等階段(即BSP模型),因此資源利用波動性較大,例如CPU計算階段,網(wǎng)絡(luò)空閑;網(wǎng)絡(luò)傳輸或全局同步階段,CPU空閑。為解決這個問題,百度在MPI集群中引入IDLE計算,IDLE業(yè)務(wù)資源占用充分可控,典型的IDLE任務(wù)如MapReduce任務(wù),而執(zhí)行MR任務(wù)又會進一步加劇MR集群和MPI集群間網(wǎng)絡(luò)帶寬問題。

基于以上考慮,百度正式將MPI底層硬件替換為替換成高配置存儲型服務(wù)器,硬盤同構(gòu),文件系統(tǒng)都采用HDFS,BML算法輸入和輸出均通過HDFS,不再是本地文件系統(tǒng)。

BML機器學(xué)習(xí)執(zhí)行引擎層面,百度基于MPI封裝了DVCE(Distributed VectorComputingEngine)分布式向量計算引擎,屏蔽MPI過于低層的編程接口,通過高層抽象自動翻譯為MPI任務(wù),這就是百度第二代專門針對“并行計算”開發(fā)的系統(tǒng)框架。

2014年,BML機器學(xué)習(xí)執(zhí)行引擎遷移到ELF第三代并行計算框架, ELF采用ParameterServer架構(gòu),大幅降低機器學(xué)習(xí)算法開發(fā)代價,對比于百度的第二代框架DVCE,在開發(fā)效率方面有大幅度的提升。離線計算方面,完成了Native C++ DAG引擎上線,百度內(nèi)部叫DCE(Distributed ComputingEngine)。

2014年BMR和BML底層都采用Matrix完成資源分配與隔離,其他平臺如小批量計算系統(tǒng)TaskManager和毫秒級計算延遲的Dstream系統(tǒng),都基于業(yè)務(wù)需求特殊性,采用獨立的資源隔離和調(diào)度系統(tǒng)。

2015年的架構(gòu)改進,主要是將所有的計算模型均遷移到Matrix+Normandy架構(gòu)。Normandy兼容社區(qū)Yarn調(diào)度接口,開源社區(qū)新型興計算平臺可以很輕松的接入到百度的計算生態(tài)里。

百度已經(jīng)介紹了百度大數(shù)據(jù)分析和挖掘平臺主要的底層引擎和架構(gòu),接下來談一下最新思考。

系統(tǒng)底層是IDC硬件,接著是Matrix,再是Normandy,然后是幾個主要的引擎。之前介紹底層架構(gòu)的統(tǒng)一,比如在硬件、調(diào)度、存儲等方面的統(tǒng)一。實際上各個系統(tǒng)對外的結(jié)果,都有自己的接口,如果要使用MR,很多人寫MR程序都是直接調(diào)用Hadoop原生接口,配置涉及到的多個參數(shù)。部分業(yè)務(wù)還需要流式系統(tǒng)完成日志清洗,在經(jīng)過MapReduce模型批量預(yù)處理,隨后通過ELF完成機器學(xué)習(xí)模型訓(xùn)練,最后再通過MapReduce模型完成模型評估,可見一個業(yè)務(wù)需要跨越多個模型,需要業(yè)務(wù)線同學(xué)同時熟悉很多模型和平臺,而每一個模型又有各自特點和接口。只有足夠了解模型的細節(jié)和接口后,才能真正的利用好該模型。

于是百度正式立項BigFlow項目(原項目名DataFlow,圖片未來及修改),將模型的細節(jié)屏蔽。平臺自動決定選擇合適的并發(fā)度,甚至智能選擇應(yīng)該把這個翻譯到哪個計算模型。BigFlow可以支持多個不同的計算引擎(每個引擎在其適合的領(lǐng)域做到極致),充分發(fā)揮各引擎性能和功能。所以用戶使用同一套接口,便能對應(yīng)到不同的任務(wù)。由于采用高層抽象,業(yè)務(wù)開發(fā)效率獲得大幅提升,代碼量大幅減少,其維護成本也大幅降低。BigFlow集成常見優(yōu)化手段,因此將大幅提升平臺有效資源占用。

百度開放云——大數(shù)據(jù)+智能

最后,向大家簡要介紹百度開放云。2014年,百度正式?jīng)Q定將服務(wù)內(nèi)部業(yè)務(wù)多年的云計算技術(shù)正式對外提供服務(wù),即百度開放云,對應(yīng)官網(wǎng)http://cloud.baidu.com。百度開放云大數(shù)據(jù)方面,BMR已經(jīng)對外開放,而更多的大數(shù)據(jù)分析和服務(wù)都還未對外開放。BMR集群上可以做到按需部署,用戶專享,更關(guān)鍵的是完全兼容開源的Hadoop/Spark平臺,開放云客戶基于Hadoop、Spark、Hbase等已經(jīng)實現(xiàn)的大數(shù)據(jù)業(yè)務(wù)幾乎不用修改就可以平滑遷移到云上。多維分析服務(wù)Palo,它完全兼容MySQL網(wǎng)絡(luò)協(xié)議,因此,客戶朋友們熟悉的Mysql Client的工具均可使用。

同時,Palo支持JDBC、ODBC的編程接口,如果已有程序采用的是JDBC、ODBC,那么遷移成本幾乎為零。最后看到它與業(yè)界主流的BI工具商業(yè)分析的工具對接的,比如Tableau、Saiku、BIEE、R。

最后再介紹機器學(xué)習(xí)云服務(wù)BML,BML中提供的深度學(xué)習(xí)技術(shù),曾獲得2014年百度最高獎。BML提供端到端的解決方案,里面提供的算法均服務(wù)百度內(nèi)部業(yè)務(wù)多年,典型如網(wǎng)頁搜索、百度推廣(鳳巢、網(wǎng)盟CTR預(yù)估等)、百度地圖、百度翻譯等。

使用開放云BMR和BML、Palo等,就可以立刻、直接享用與百度搜索同等品質(zhì)的大數(shù)據(jù)分析和挖掘服務(wù)!

我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

本文章出于推來客官網(wǎng),轉(zhuǎn)載請表明原文地址:https://www.tlkjt.com/experience/7349.html
推薦文章

在線客服

掃碼聯(lián)系客服

3985758

回到頂部