首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

摘要: 每年的雙11之前,也是MaxCompute各種乾坤大挪移落定的時候,因為雙11就是各種大折騰項目的自然deadline。在今年雙11之前,一路向北遷移和在離線混部項目,將杭州集群除螞蟻外整體遷移到張北,涉及了絕大部分的業務project、數據存儲和計算任務,為今年雙十一大數據計算服務的保障帶來了挑戰。

作者:阿里巴巴計算平臺 高級技術專家 迎輝

MaxCompute作為阿里巴巴的主力計算平臺,在2018年的雙11中,再次不負眾望,經受住了雙11期間海量數據和高并發量的考驗。為集團的各條業務線提供了強勁的計算力,不愧是為阿里巴巴歷年雙11輸送超級計算力的核武器。

本文為大家介紹,MaxCompute基于多集群部署的幾萬臺服務器,如何為集團急劇增長的業務提供護航和保障。

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

挑戰
每年的雙11之前,也是MaxCompute各種乾坤大挪移落定的時候,因為雙11就是各種大折騰項目的自然deadline。在今年雙11之前,一路向北遷移和在離線混部項目,將杭州集群除螞蟻外整體遷移到張北,涉及了絕大部分的業務project、數據存儲和計算任務,為今年雙十一大數據計算服務的保障帶來了挑戰。

體量

現在MaxCompute包括在離線混部集群在內有幾萬臺服務器,數據總存儲量在EB級,日均運行近幾百萬量級的作業,而每天所有作業處理的數據總量也在幾百PB。集群分布三個地理區域,之間由長傳鏈路相連接,由于集團數據業務固有的普遍聯系特性,各個集群之間有著切不斷的大量數據依賴,以及嚴重的帶寬依賴。

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

成本

大量的服務器就是大量的成本,降低成本就要充分利用每個集群的計算存儲能力,提高資源利用率。同時,不同業務有著不同的特征,有的存儲多計算少,有的計算多存儲少,有的大規模ETL I/O繁忙,有的機器學習科學計算CPU密集。

怎樣充分利用每個集群的能力,提升CPU、內存、IO、存儲各方面的利用率,同時均衡各集群負載,兼顧站點之間長傳帶寬的壓力,在超高資源利用率下保障運行穩定,還要支持杭州整體搬遷這樣量級的變更,這些挑戰對于MaxCompute并不是應對雙11大促的一次重大戰役,而是MaxCompute每天的日常。

如何應對這些挑戰,下面將從各個角度為大家介紹 MaxCompute 所做的一些列工作。

集群遷移
今年,一路向北遷移和在離線混部項目,將杭州集群遷移到張北,同時也涉及了MaxCompute控制集群和計算集群的遷移。 物理資源上的大騰挪,也給MaxCompute的服務保障帶來了一些列問題和挑戰。

透明的Project集群遷移

可能很多同學以前遇到過所在Project遷移集群時作業失敗,出現 AllDenied 報錯。之前在把Project遷到另一個集群的時候,會對用戶有影響,操作前需要先做通知,對用戶對運維同學都很困擾。
今年MaxCompute實現了遷移Project遷移過程中作業運行和提交都正常不受影響,做到了對用戶透明。

輕量化遷移

集群之間因為業務的差異,會出現計算和存儲配比不均衡的情況,而正常的遷移需要目標集群的存儲和計算空間都滿足需求才能做,這樣就會遇到有的集群存儲水位比較高,但計算能力還沒用滿,卻沒辦法遷移大的Project過去的情況。

今年上線的輕量化遷移機制,可以實現只遷移計算和部分熱數據到新的集群,而老數據則留在原集群,能夠達到既均衡了計算資源,又不會有太多跨集群讀寫的效果。

搬走動不了的OTS

MaxCompute 使用OTS存儲系統的各種核心元數據,所以一旦OTS異常,MaxCompute的整個服務都會受到影響。更嚴重的是,MaxCompute服務對OTS的依賴長期沒有主備熱切換的支持,使得OTS集群變成了MaxCompute唯一動不了的一個點。

今年作為一路向北遷移規劃的一部分,我們仔細擬定和驗證了OTS熱切換方案,梳理了控制服務和OTS集群的依賴,目標不但是要做OTS的主備熱切換,而且是從杭州直接切到張北。

盡管經歷了一次彈內切換的失敗,經過進一步優化和演練,最終我們把切換時間從預定的分鐘級別切換縮短到了若干秒級的切換,并在公共云線上環境也成功實施,實際切換過程無異常反饋,做到了用戶無感知。

從此MaxCompute服務里最關鍵的一個點有了無損熱切換的能力,大大降低了整體服務的全局性風險。

跨集群調度
多樣的全局作業調度機制

集群之間因為作業類型或業務特征等因素,可能會有各種計算資源使用的不充分,比如:業務的全天資源高峰時段及持續時間不同;申請大塊資源的任務類型所在集群有空隙可以超賣小作業填充;甚至有些特殊情況會有臨時的資源借用需求。

為此MaxCompute提供了一些全局作業調度機制,可以把指定的一批作業調度到指定的集群運行,或者在當前集群資源繁忙的時候,系統自動去看如果其它集群資源有空閑,就調度到空閑集群運行。

除了均衡資源利用率,這些機制也提供了人工調控的靈活性,并且還在進行與數據排布相結合的調度機制開發,以根據集群實時的狀態進行調度。

拓撲感知、數據驅動的橋頭堡

作業要訪問其它集群的表數據有兩個選擇,一個是從本集群直接讀遠程集群(直讀),一個是先把遠程的數據復制一份到本集群(等復制)。這兩種方式各有優缺點及其適用的場景。 同時,集群之間的網絡拓撲(是異地長傳還是同城同核心)也會影響直讀和等復制策略的選擇。異地長傳帶寬成本高,容量小,同城的網絡帶寬則相對容量較大,但在大數據的流量下,高峰期都是一樣的可能擁堵,所以需要既利用同城帶寬優勢,又不能把瓶頸轉移到同城,需要全局的策略調配。

因為每天業務都在變化,數據的依賴關系也在變化,我們利用對歷史任務的分析數據持續優化和更新復制策略,在每個區域選擇橋頭堡集群接收長傳的復制,然后在區域內實施鏈式復制或者近距離直讀。 通過橋頭堡2.0項目,我們實現了將2個地域間的數據復制流量降低了30%+。

新機型的新問題
一朝天子一朝臣,一代機型一代瓶頸。

現在MaxCompute的集群規模仍然是萬臺標準,但今天的萬臺已經不是幾年前的萬臺,單機的CPU核數從曾經的24核、32核,再到新集群的96核,一臺頂過去3臺。但不管單機多少核,在MaxCompute的集群里,每天CPU總是能持續幾個小時滿負荷運行,總體日均CPU利用率達到65%。

不變的除了CPU利用率,還有磁盤數,我們的數據IO能力仍然是由不變的單機機械硬盤提供。雖然硬盤充起了氦氣,單盤容量是以前的3倍,但單盤的IOPS能力卻相差無幾,DiskUtil就變成了非常大的瓶頸。

經過一系列的優化措施,今年大量96核集群的上線沒有了去年面對64核時的狼狽不堪,把DiskUtil維持在了比較可控的水平。

透明的文件合并
跑作業時遇到報錯FILE_NOT_FOUND重跑又能過,或者掃描長時間分區范圍的作業反復重跑也沒法跑過,這個情況相信很多人都遇到過。

為了緩解集群文件數的壓力,平臺的后臺自動文件合并停一兩天都有觸頂的危險,但長期以來這個動作為了保證數據一致性和效率,都沒法避免打斷正在讀的作業,只能選擇只合并比較冷的分區,但一方面文件數的壓力迫使把冷的判定閾值從一個月壓縮到兩周到更短,另一方面總會有不少作業仍然會去讀早些時間的分區而被合并操作打斷。

今年平臺實現了新的合并機制,會給已經在運行的作業留一定的時間仍能讀合并之前的文件,從而不再受影響,可以很大程度上解決這個頑固問題。

目前新的機制在公共云取得了很好的效果,集團內也在灰度試運行中。

平臺性能提升
作為一個計算平臺,MaxCompute以計算力為核心指標,通過不斷的提升計算力,支撐起集團飛速的業務增長。 對比2017雙十一,今年雙十一當天MaxCompute作業數幾乎有了成倍的增長。 過去一年中,MaxCompute通過在NewSQL+富結構化+聯合計算平臺+AliORC多個方向上發力,持續構建高可用、高性能、高自適性的大數據平臺,提升平臺計算力。 9月云棲大會發布中,TPC-BB的測評結果在10TB規模上超越開源系統3倍以上;100TB規模評分從去年的7800+提升到18000+,世界領先。

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

總結
MaxCompute 在2018雙十一又一次平滑通過了大促的考驗,同時我們也看到, 平臺需要不斷提升分布式計算下多集群的綜合能力,不斷提升計算力,保障大規模計算下的穩定性,來支撐起持續高速增長的業務。 通過持續的引擎能力優化、開發框架建設、智能數倉建設等維度,MaxCompute 向智能化的、開放的、生態平臺發展,來支撐起下一個100%業務增長。

轉載于:https://blog.51cto.com/14031893/2327119

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件測試金字塔

軟件測試金字塔 在敏捷方法中,持續集成是其基石,持續集成的核心是自動化測試。下面這篇關于測試金字塔的文章,來自大師Martin Fowler。 測試金字塔的概念來自Mike Cohn,在他的書Succeeding With Agile中有詳細描述:測試…

使用pm2守護你的.NET Core應用程序

簡介PM2是常用的node進程管理工具,它可以提供node.js應用管理,如自動重載、性能監控、負載均衡等。同類工具有Supervisor、Forever等。pm2是一個進程管理工具,可以用它來管理你的node進程,并查看node進程的狀態,當然也支持性能監控…

C-指針02 2017/11/24

/* 復習 1.指針類型 int *指針類型 指針指向的變量類型指針指向哪個變量2.基本數據類型 4種指針類型 存放的地址 和系統有關系 4個字節數組類型結構體 枚舉 聯合3.指針加法減法 p 和數組搭配使用4.兩個運算符 *取值(解引用) &取地址5. *(pi) p[i] …

程序員搞笑段子

轉載于:https://www.cnblogs.com/Zhusi/p/10083474.html

學習之旅——工作記錄日志2017.7.09

1.例子:在dev_lala上開發完畢后,切換到dev分支,在此分支上pull最新的代碼來保證dev上的代碼是最新的。在dev分支上git branch -b haha一個新的分支haha, 用git log dev_lala查看提交記錄,將我自己的幾個記錄加到haha分…

Git常用命令與基本操作

Git操作指令系統配置基本命令獲取/刪除Git倉庫更新記錄撤銷操作遠程倉庫的使用分支系統系統配置 git config 為系統自帶的配置指令,它可以控制GIT的行為和外觀 配置用戶信息 git config --global user.name "John Doe" git config --global user.email …

CA周記 - 在 Azure ML 上用 .NET 跑機器學習

.NET 是一個跨平臺,全場景應用的開源技術。你有在用 .NET 做機器學習/深度學習的應用嗎?如果從框架角度,ML.NET / Tensorflow.NET / 不斷在進步的 TorchSharp 通過幾年的發展已經開始穩定,但如果在一些大型項目上,特別…

iOS10 優化APP首次安裝網絡權限提示方案

我剛經歷了一場末日(停電),特別是在你想寫文檔的時候。。。 言歸正傳,今天的問題是解決iOS10系統下首次按鈕APP彈出的網絡權限提示所帶來了問題以及優化。 起因 查了相關文章知道由于大陸工信部出臺的新規指出,應用在未…

su命令

從一個用戶切換到另一個用戶:su - ceshi(ceshi是用戶名) 查看當前用戶:whoami 在不切換用戶的情況執行另一個用戶的命令:例:su - -c "touch /tmp/111.txt" admin 若用戶沒有加目錄需要添加家目錄,并更改所有…

C語言基礎知識【數據類型】

C 數據類型1.在 C 語言中,數據類型指的是用于聲明不同類型的變量或函數的一個廣泛的系統。變量的類型決定了變量存儲占用的空間,以及如何解釋存儲的位模式。2.C 中的類型可分為以下幾種:序號 類型與描述1 基本類型:它們是算…

PS批量替換內容

在制作圖片物料的時候,有時會碰到需要制作大量內容格式一致,但部分文字或圖片不同的圖片,這里我們使用PS的變量功能 物料準備:準備好需要替換的圖片和文字,使用excel制作出需要替換的內容,第一行name和pic…

在 .NET 中執行 JavaScript 代碼

你好,這里是 Dotnet 工具箱,定期分享 Dotnet 有趣,實用的工具和組件,希望對您有用!Jint 簡介如果您想在您的 .NET 程序中使用 Javascript,那么我推薦您使用 Jint。Jint 是適用于 .NET 的 開源 Javascript 解…

【本周面試題】第5周 - 開發工具相關

待整理轉載于:https://www.cnblogs.com/padding1015/p/10095424.html

JS 返回上一步(退回上一步上一個網頁)

鏈接式&#xff1a; <a href"javascript:history.go(-1)">返回上一步</a> <a href"<%Request.ServerVariables("HTTP_REFERER")%>">返回上一步</a> 按鈕式&#xff1a; <INPUT name"pclog" type&quo…

jmeter多用戶登錄跨線程組操作傳值

項目需求&#xff1a; 需要登錄兩個用戶A、B&#xff0c;用戶A操作完后會通知B&#xff0c;然后B再操作&#xff0c;B操作完結束或者再通知A。 實現思路&#xff1a; 1. 設置兩個線程組Ⅰ、Ⅱ&#xff0c;組Ⅰ添加cookie管理器&#xff0c;里面添加用戶A的操作&#xff1b;組Ⅱ…

手動修改美化7zip圖標 - 附替換文件

手動修改7zip圖標理論知識制作ico圖標文件替換資源重建圖標緩存效果圖替換文件7-Zip的自帶圖標是公認的丑&#xff0c;所以網上有很多7-Zip的圖標美化工具&#xff0c;用的最多的就是 7-Zip Theme Manager&#xff0c;自帶很多主題&#xff0c;但是最近我再使用7zTM修改圖標是卻…

.NET性能優化-復用StringBuilder

在之前的文章中&#xff0c;我們介紹了 dotnet 在字符串拼接時可以使用的一些性能優化技巧。比如&#xff1a;為StringBuilder設置 Buffer 初始大小使用ValueStringBuilder等等 不過這些都多多少少有一些局限性&#xff0c;比如StringBuilder還是會存在new StringBuilder()這樣…

如何使用vue組件搭建網頁并打包發布

vue組件化項目搭建及編譯打包發布引言開發環境開發環境介紹開發環境安裝使用模板創建項目編譯及打包發布引言 最近開始學習Vue&#xff0c;Vue 是一個前端框架&#xff0c;特點是數據綁定和組件化。網上很多教程&#xff0c;數據綁定和組件學習起來也都不困難&#xff0c;但是…

MyBatis 分頁插件 PageHelper

插件官網 簡介&#xff1a; 支持常見的 12 種數據庫。Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等&#xff1b; 支持常見的RowBounds(PageRowBounds)&#xff0c;PageHelper.startPage 方法調用&#xff0c;Mapper 接口參數調用&#xff1b; 獲取maven配置 示例&…

Facebook揭秘其應用測試平臺,并開源核心技術

本周&#xff0c;Facebook讓一群記者參觀了它位于俄勒岡州普賴恩維爾市的數據中心&#xff0c;在這個過程中也展示了他們的一個移動應用測試實驗室&#xff0c;用來測試Facebook app、 Messenger 和Instagram。 目前 這個實驗室總共含有60個機架&#xff0c;每個機架上放置32臺…