• <li id="0bn34"><legend id="0bn34"><th id="0bn34"></th></legend></li>

      <label id="0bn34"><mark id="0bn34"><strong id="0bn34"></strong></mark></label>
      <span id="0bn34"><optgroup id="0bn34"></optgroup></span> <label id="0bn34"><mark id="0bn34"><strong id="0bn34"></strong></mark></label>

      <rt id="0bn34"></rt>
      <span id="0bn34"><optgroup id="0bn34"><center id="0bn34"></center></optgroup></span>
      <li id="0bn34"><big id="0bn34"><listing id="0bn34"></listing></big></li>
      解析百度開放云分布式計算平臺對大數據的處理
      • 更新時間:2025-05-14 20:48:41
      • 開發經驗
      • 發布時間:3年前
      • 708

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


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


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


      處理大數據無非以下四個步驟:

      收集:原始數據種類多樣,格式、位置、存儲、時效性等迥異。數據收集從異構數據源中收集數據并轉換成相應的格式方便處理。

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


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


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


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



      百度分布式計算平臺:離線引擎優化

      關于MapReduce

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

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

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

      內存流式Shuffle

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

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

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

      百度分布式計算平臺:系統架構演進

      前面重點介紹了百度開放云BMR服務中涉及到的規模、性能方面優化思路和效果,接下來跟大家一起分享一下,百度遇到的整體架構方面挑戰以及優化思路。

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

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

      BMR Hadoop由大量SATA硬盤的服務器構成,存儲系統為HDFS,資源調度層面百度有自研的調度器ARK(與社區Yarn比較類似)。而BML大規模機器學習平臺上,支持的業務樣本超過數百億計量級,特征規模也遠超百億。百度在運行機器學習時,需要先啟動MapReduce,然后再將數據從HDFS分發到各個MPI節點,這種方式對網絡帶寬的要求很高。

      系統部同事持續改進內網帶寬的同時,BML平臺層面也在思考應該如何解決跨MR和MPI倆大集群間的日益嚴重的網絡帶寬問題。

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

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

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

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

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

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

      百度已經介紹了百度大數據分析和挖掘平臺主要的底層引擎和架構,接下來談一下最新思考。

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

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

      百度開放云——大數據+智能

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

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

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

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

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

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

      在線客服

      掃碼聯系客服

      3985758

      回到頂部

      黄色一级视频网站| 高清videosgratis欧洲69| 小嫩妇又紧又嫩好紧视频| 久久精品无码一区二区三区| 欧洲最强rapper潮水免费| 亚洲精品中文字幕乱码三区| 爽爽yin人网| 午夜亚洲av日韩av无码大全| 美女把尿口扒开给男人桶视频| 国产一区二区三区久久精品| 精品国产一二三区在线影院| 国产人澡人澡澡澡人碰视频| 一级黄色片大全| 撅起小屁股扒开调教bl| 久久精品桃花综合| 无码欧精品亚洲日韩一区| 久久精品小视频| 收集最新中文国产中文字幕| 中文字幕无线码一区二区| 成年男女免费视频网站| 久久国产精品范冰啊| 日本爽爽爽爽爽爽在线观看免| 亚洲av无码乱码在线观看| 最近中文国语字幕在线播放| 亚洲午夜精品一区二区| 欧美xxxxbbb| 亚洲国产欧美国产综合一区| 欧美a级毛欧美1级a大片免费播放| 亚洲人成7777影视在线观看| 日韩高清一级毛片| 亚洲av高清一区二区三区| 日本人与黑人xxxx| 中文字幕校园春色| 大胸美女洗澡扒奶衣挤奶| 97久人人做人人妻人人玩精品| 国产色在线com| 99久久人妻精品免费二区| 国产精品无码无卡无需播放器| 91人成在线观看网站| 国产真实乱了全集磁力| **aa级毛片午夜在线播放|