1 合久必分(一):多功能集群
1 合久必分(一):多功能集群
1.1 基本情況
資源使用量:1.1W台
1.2 特點
隨著廣告對MaxCompute的深入使用,有兩個重要場景的需求單一物理集群已經很難滿足了
1、有些任務不能接受MaxCompute的長時間不可用:如結算和反作弊相關任務;
2、算法做LR迭代經常因為資源問題Fail:MR和PS/XLib放一起時經常出現大的等待
1.3 構架調整
因此,這期間我們專門新建了“小時集群”和“AON集群”,並為這兩類集群定製了個性化策略;
1.4 小時集群
1.4.1 為什麼要搞小時集群?
其實就兩個原因:
1、舊在雲端原計劃2015.11月完成全部下線,基本處於無法維護狀態,Hadoop小時集群也維護困難;因此要來個“再登月”;
2、 運行在小時集群上的任務對產出時間敏感,如果在一個小時內不能完成很可能會造成資損和投訴; 因此小時集群主要需要解決的就是一個跨集群容災問題。
1.4.2 架構設計
這版設計主要出自無謂大師之手
- 小時Project:具有小時功能的project(可多個),project屬於一個單獨的Quota Group;
- 小時日誌:在傳統的TT日誌保存project之外,有另外一份同樣的數據寫到小時Project(日誌雙寫)
- 一個小時計算集群(主集群)
- 小時集群也跟著大集群的升級周期,PE對計算集群的優先級分類,小時計算集群優先級最高,灰度發布放在最後
- 小時集群可能在共享集群;但在共享的小時集群裏Quota不超賣(min=max),同時可以利用虛擬資源分離機器
1.4.3 可用性保障
- MaxCompute前端:當前具備兩個前端集群,分布在兩個不同的機房。MaxCompute客戶端所在的Gateway(在雲端Gateway)默認安裝VIP Server,當一個集群異常時,可以通過VIP Server的配置,將流量引到正常的前端集群。不可用時間在10分鍾以內
- Tunnel:MaxCompute具備多個Tunnel集群,分布在不同的機房。需要TT使用支持自動路由功能的Tunnel SDK,並且PE可以通過VIP Server切換集群
- MaxCompute控製集群:
- 使用MaxCompute的兩個控製集群,調度數據放在OTS上
- 控製集群切換可以使用AdminConsole或專門的PE工具
- 控製集群切換會導致正在運行的作業失敗。保障快速切換,作業快速失敗,依賴上層天網的自動重調
- 計算服務不可用,切換到另外一個集群,數據可以正常訪問
5、存儲集群不可用預案
小時集群遷移MaxCompute需要較高的可用性,在應用存儲集群不可用時的TT雙寫MaxCompute project目前是不推薦的;因此設計了如下兩個方案
說明:方案1和方案2是可並存的,可以由業務方自己選擇;
|
方案1【當前方案】 |
方案2【可選的長遠方案】 |
示意圖 |
![]() |
![]() |
說明 |
1、綠色部分表示當前已經存在的任務或者數據; |
1、有小時功能特性的日誌不直接收集到alimama_ods中,先進alimama_hour, |
優點 |
1、簡單; |
1、功能劃分更明確合理;長遠來看應該用這種方案; |
缺點 |
對線上機器會增加額外的tt收集壓力,少量tt空間占用; |
由於當前log_day類的數據已經有太多任務在使用,方案對上線時間點也有較高的要求;因此會涉及到較多任務的改動;項目風險會被拉大;不適合與小時集群遷移合到一起來做; |
1.4.4 故障恢複
當小時計算集群存儲服務發生故障時,可能產生的數據不一致需要人工介入做故障恢複:
- MaxCompute Job產生的數據或中間數據:有問題作業需要全部重跑;
1.4.5 單點問題
由於整個雲解決方案涉及到的係統眾多,因此暫不可能完全無單點,如下部分是潛在風險;
- MaxCompute外部依賴:OTS
- MaxCompute外部依賴:BUC、UMM、AAS等阿裏雲服務
- 數據依賴:TimeTunnel
- 調度依賴:天網
最後更新:2017-06-06 11:01:43