【IT168 現場報導】2016年10月27日-29日,2016中國系統架構師大會(SACC 2016)在北京萬達索菲特大飯店盛大開幕。作為中國規模最大的架構師豪門盛會,本屆大會以「架構創新之路」為主題,站在創新的風口上,與大家共同打造一場通過架構創新及各種IT新技術來帶動企業轉型增效,助力架構師們騰飛的技術盛會。
大會雲集了國內外頂尖專家,共同探討雲計算和大數據等技術背景下,如何通過架構創新及各種IT新技術來帶動企業轉型增效。本屆大會共設置兩個主場分享時段,24個技術交流專場時段;邀請來自網際網路、電子商務、金融、電信、政府、行業協會等20多個領域,150多位技術專家及行業領袖來分享他們的經驗;並將吸引4000多名系統運維、架構師、及各種企業的IT決策人士參會,為他們提供最具價值的交流平臺。
中國系統架構師大會來到了第二天,我們迎來了主題為「雲和大數據下的架構實踐及優化」的主場2,今天上午第三位演講嘉賓是百度基礎架構部分布式計算架構師張建偉,他演講的題目是《百度大數據離線計算平臺流式shuffle服務》。
▲百度基礎架構部分布式計算架構師 張建偉
背景
據張老師介紹,百度私有雲架構最底層有百度自研的高精硬體,上層包括集群作業系統Matrix,Normandy統一資源調度。
百度大數據離線計算平臺:
一般Shuffle模式:
Shuffle作為大數據離線計算平臺中最重要的模塊,其性能直接影響作業的運行時效性和平臺資源消耗。為進一步提高平臺計算效能,百度研發了新型的流式Shuffle服務,降低框架資源消耗,提升框架計算有效性,進一步強化平臺計算能力。
百度大數據離線平臺發展歷程
談到平臺發展歷程時,張老師首先介紹主要的離線計算模型——MapReduce,百度從2007年開始引進Hadoop 0.15.1,隨後快速發展,2011年百度的MR單集群規模達到5000臺,到2013年已經多達1.3萬臺,這也是截止到目前為止全世界最大的單集群。Hadoop全集群規模為10萬量級,作業量達到了百萬量級,日均CPU利用率超過80%,遠超業界同行,百度開放雲底層依賴的大規模集群調度、資源隔離等技術能力世界領先。
除了在規模方面不斷擴大,百度一直在Hadoop性能分析方面進行了大量的優化。2013年的測試結果顯示,百度內部MR實現相比於開源Hadoop性能提升30%。典型優化,例如Hadoop中的Shuffle,我們將其做成一個統一的shuffle服務,不再佔用Map或Reduce槽位。比如對關鍵熱點函數採用SSE向量化等。
架構
流式Shuffle服務已成功應用於百度十萬級規模的離線計算平臺,收益顯著。面向架構師、大數據應用者、大數據框架開發者等人群,張老師主要介紹了流式shuffle&內存push(map數據不落盤);Pipeline;Shuffle結果高度預聚合&多副本持久化;負載均衡與流控;去重與異常處理;多路輸入多路輸出(MIMO)。
關鍵技術
ShuffleMaster:
Writer:
Shuffler:
Reader:所有Map完成後,調度Reduce,直接讀取DFS排好序的數據,去重&數據驗證,多路歸併排序。
Map Pipeline:Map端Writer,要等Shuffler將數據持久化到DFS後,才能將發送的rpc buffer釋放,所有發送的數據被Shuffler持久化後,Map才能安全退出。
收益與總結
收益,流式shuffle:減少舊shuffle map merge、reduce pull時間消耗;內存Push:map端不落盤;Shuffler內存聚合:聚合度高,減少map端seek,減少reduce端merge路數,減少IO;Pipeline:大大提高中小作業map端運行速度;中間數據持久化:避免重算(對dag作業尤為重要)。
流式Shuffle服務,push instead of pull;Shuffle過程交給能拿到更多全局信息、更專業的shuffler來做;Map、Shuffler、Reduce,每個都做自己最適合做且擅長做的事情;Shuffle與Reduce解耦,簡化Reduce,也為解決分桶不均問題提供可能;Pipeline;無縫的流線,減少無謂的等待。
問題:更多的網絡io(萬兆網卡,網絡不是瓶頸);Shuffler資源共享,作業間可能互相影響(讓Shuffler資源非瓶頸)。
下一步計劃
▲更多信息盡在IT168現場報導專題:http://www.it168.com/redian/sacc2016/