98.8秒奪冠,解析騰訊云數智背后的架構與算法優化
背景
11月10日,具有計算奧運會之稱的 Sort Benchmark 全球排序競賽公布了 2016年最終成績 ,騰訊云大數據聯合團隊用時不到99秒(98.8秒)就完成 100TB 的數據排序,打破了阿里云去年創造的329秒的記錄。在更早前,百度創造的紀錄是716秒,Hadoop 的記錄是4222秒。
在這次競賽中,騰訊云數智分布式計算平臺,奪得 Sort Benchmark 大賽 GraySort 和 MinuteSort 的冠軍,這也體現了騰訊云數智分布式計算平臺在數據處理上的優越性能。在競賽結果公布之后,InfoQ 也對騰訊云大數據聯合團隊進行了采訪,從技術層面報道騰訊云數智分布式計算平臺的實現原理,以及競賽結果所帶來的長遠意義。
關于騰訊云大數據聯合團隊
此次參賽的騰訊云大數據聯合團隊是由騰訊云存儲產品中心、騰訊數據平臺部組成,這個團隊在大數據技術和應用管理上有豐富的實踐經驗, 尤其是騰訊數據平臺部一直在管理的騰訊大數據集群,是世界上最大的大數據集群之一。 多年的技術積累,再加上團隊不斷的苦練內功,都為整個團隊在全球計算奧運會上取得矚目成績打下了堅實的基礎。
解析騰訊云數智分布式系統軟件架構
對于騰訊云分布式系統軟件架構,可以從海量數據分布式存儲、計算任務切片調度、節點通信協調同步、數據計算監控容災等,以及硬件架構能力,包括服務器硬件選配、網絡架構調優、IDC 規劃建設等角度來進行剖析。
在硬件和網絡方面,分布式系統采取了 IBM 的 PowerPC 和邁絡思的 100Gb 網絡技術,機器配置選型如下:
網絡架構采用了三層架構:
騰訊云大數據服務的實時計算平臺能提供單集群上千臺規模實時流式計算,在數據存儲方面,支持多重數據備份,萬億數據的存儲能力。在任務調度方面,支持百萬級任務的毫秒級調用。而且支持故障節點自動發現、自動剔除、業務自動遷移、關鍵節點主從熱備,以及故障秒級切換。
本次競賽中的排序分為 Partition、Shuffle 和 Sort 三個階段:
- Partition 階段 ,從本地磁盤中讀入分片的輸入數據,然后對輸入數據進行 Range Partition 操作,將數據進行無重疊區間的分片,Range Partition 結束后,輸出按照 Range 大小排序的 Range File。
- Shuffle 階段 ,將按照 Range 大小排序的 Range File 文件發送給對應的 Sort 程序。
- Sort 階段 ,Sort 任務等待所需的數據都到齊了,就啟動基于基數排序的排序操作,將排序結果寫入磁盤。
Partition 和 Sort 階段是并行執行的,待 Sort 完成后,輸出多個排序文件,由于 Shuffle 的時候已經按照 Range 大小進行了排序,最終輸出的排序文件在全局是有序的。
軟件算法優化
參加這次比賽,騰訊云在軟件方面也做了不少優化,重點如下:
1、更高效的調度系統。此次比賽,騰訊云參加了 GraySort 和 MinuteSort 二個大項的比賽,GraySort 比拼的是完成 100TB 的數據排序的耗時,主要評測的是系統對大規模數據的處理能力,MinuteSort 比拼的是1分鐘內的排序數量,主要評測的是系統的效率。
為了在1分鐘內完成盡可能多的數據排序,系統任務調度的開銷不容忽視,調度效率顯得尤為關鍵,在系統上消耗的時間越少,越利于比賽成績的提高。得益于平臺強大的調度能力,團隊在1分鐘內完成了 55.3TB 數據的排序,是之前最好紀錄的5倍。騰訊云的調度系統曾做了大量的優化,在騰訊的內部系統上,每天調度達2億次,在海量系統上得到了驗證。
2、內存存儲的最大化利用。在排序過程中的中間數據,盡量存儲在內存中,當內存中數據達到一定閾值,快要占滿整個內存空間的時候,才會啟動向磁盤中寫入數據,最大化利用內存存儲。 而騰訊云的系統具備調度感知的能力,當系統內存充足的時候,會讓該環節的計算任務完全在內存中完成計算,無需落地到磁盤,極大的提升了系統的處理能力。
值得一提的是,騰訊云數智提供的強大數據分析與挖掘探索能力,多維分析引擎可在數秒內完成在億萬級數據、萬級維度量級下的分析作業。除了數據分析引擎,數智還囊括了機器學習引擎,內置的算法庫均經過騰訊海量數據的訓練實操,支持圖計算、高性能并行計算、深度學習等。
3、并行操作和 IO 優化。在 Partition 階段和 Sort 階段,我們都采取了多任務的并行操作。在這里我們會根據機器和網絡的性能來調整機器上的并發數,來提高整個系統的運行效率。為了提升網絡的傳輸效率,優化了整個網絡傳輸系統。在網絡的傳輸中,過小的分片數據會帶來額外的控制信息的傳輸,造成網絡帶寬實際上并不能完全跑滿。對此我們采用大數據塊的傳輸,在發送端對小的數據片進行合并,在接收端,對收到的數據包進行聚合后再傳遞給上層協議棧,來提高整個系統的數據傳送能力,從而榨干這些機器間的網絡帶寬,通過優化,集群的整體吞吐可以得到極大的提升。
如何應對非結構化數據?
本次競賽是對數據進行排序,那么在未來,圖像、音頻等非結構化數據將激增,騰訊云如何更快、更準來進行數據清洗,以應對未來的趨勢和挑戰?
實際上,目前許多企業都面臨著收集到的圖像與音頻無法高效智能處理的問題。為此,騰訊云的解決方案就是對外開放一系列AI產品,如萬象優圖、人臉識別、語音識別、智能客服等服務。優圖系列產品能夠快速完成對圖片的鑒黃、內容識別、人臉檢測;智能語音識別服務可高效地滿足語音識別、語音合成、聲紋識別等語音處理需求;微金小云客服通過大數據與深度學習訓練,可讓企業擁有自己專屬的AI客服。優圖的人臉識別準確率已高于人工的識別,微眾銀行已經將該技術運用到開戶流程中,在保證安全性的前提下,極大的提升了開戶效率并顯著降低成本。企業和開發者可以有效的借助騰訊云開放的騰訊大數據和AI能力,來快速分析其存儲的非結構化數據,提升企業的核心競爭力。
數智在微信中的應用
微信的數據量之大,眾所周知,那么騰訊云具體是如何實現微信每天160億級別的多維分析場景中做到6秒返回結果的?
騰訊每天都面臨著海量的多維分析計算需求,采用傳統的社區組件已經無法保證分析結果的時效性,為此騰訊云大數據團隊針對交互式海量數據分析需求而自主研發了秒級分析平臺。
騰訊云數智實時檢索分析, 基于搜索引擎技術,將檢索與數據分析有機結合,摒棄傳統數據分析系統數據預加工的模式,根據用戶輸入的個性化數據分析需求實時計算, 讓系統更加靈活,實現在億萬級數據、萬級維度的量級下,用戶可以在該平臺上進行任意維度組合、任意層級下鉆等分析作業,但結果響應只需在數秒以內。
上面所提到的騰訊云數智中的多維分析引擎, 采用倒排索引技術結合嵌套列存儲技術,解決海量數據秒級分析問題,為大數據分析業務提供一套實時的、多維的、交互式的查詢、統計、分析系統。 在大數據的統計分析方面提供完整的解決方案,讓萬級維度、千億級數據下的秒級統計分析變為現實,為用戶提供在短時間內具備秒級響應的實時多維數據分析能力。
奪冠的意義和價值
或許很多讀者會問,騰訊云打破2016 Sort Benchmark 4項紀錄的意義是什么?對業界企業、開發者有什么價值?
對此,騰訊云副總裁、騰訊數據平臺部總經理蔣杰作出了解答。他說,此次比賽的結果,是騰訊在多年的海量數據服務經驗中,對調度系統不斷的進行大量優化的最好驗證。騰訊云數智將騰訊多年的大數據處理經驗首度開放,能夠讓社會各界享有與騰訊同級的大數據處理能力。 對于企業而言,可以在大幅降低人力成本、快速將大數據平臺落地的同時,享有高穩定、高性能、高安全的大數據平臺。對于開發者而言,無需將時間精力投入到集群的搭建、改進社區版本穩定性等問題上,從而全力投入進業務層與代碼層中。
此次的參賽結果是對騰訊多年海量大數據處理能力的認可,也見證了騰訊云在大數據領域的技術積累。那么此次競賽結果會對接下來騰訊云的應用和服務產生怎樣的影響和推動?
蔣杰說,目前,數智大數據處理套件TBDS3.0正式版已經對外發布,數智大數據工坊也在邀測中,可見數智的產品矩陣與能力已經十分完善。同時,騰訊云大數據中的方略產品線,也已經上線了多款產品,包括用戶洞察分析、熱力圖、位置大數據解決方案、輿情監控等等,方略將騰訊數據資產進行有效的整合與安全的利用,讓用戶使用騰訊云方略即可直接享受大數據資產產生的價值,讓企業在信息迸發的時代搶占先機,一同縱橫數智、助畫方略。
來自:http://www.infoq.com/cn/news/2016/11/tencent-cloud-sort-benchmark