Auto Scaling是雲上巨量資料平台的核心能力。通過按需自動擴縮容節點,能夠快速滿足業務的波動,並降低算力成本。本文為您介紹如何根據您的業務特點為叢集配置合適的Auto Scaling規則,以滿足您業務量需求不斷波動的情況,並更好的為您節省成本。
前提條件
步驟一:選擇觸發方式
步驟二:配置Auto Scaling規則
如果您設定了多條Auto Scaling規則,當同時滿足條件時,系統將會按照以下內容觸發和執行:
擴容規則優先於縮容規則。
按時間和按負載規則按照觸發先後執行。
按負載伸縮中根據觸發的指標的時間排序。
按負載伸縮中同一觸發指標按照規則建立的順序觸發。
按時間伸縮
按照您業務可能拓展的時間點,選擇重複執行或者只執行一次的執行頻率,配置擴容規則,並在業務結束後對應的時間配置縮容規則。選擇重複執行時,通過配置规则有效期,可以設定規則生效的截止時間,超出有效期間後不再觸發伸縮活動。
例如,您的業務在每天的22點開始增加,淩晨4點開始減少,您可以使用按時間伸縮,配置伸縮時間,按天重複執行,每天的22點配置擴容規則,淩晨4點配置縮容規則。
配置項和指標的詳細資料,請參見建立自訂Auto Scaling策略。
按負載伸縮
初始情況下EMR會為您推薦預設常用的擴縮容指標,您需要根據叢集指標變化的情況自行配置具體的閾值,配置好具體的數值後,單擊确定,然後單擊保存并应用,在您的業務發生變化後,即會觸發對應規則。
您可以參考以下步驟,配置適合自己叢集的伸縮規則。
選擇合適的指標。
在集群监控頁簽的指标监控頁面的Dashboard下拉框中,選擇YARN-HOME,觀測您過去時間的指標隨業務的變化,選擇合適的指標。

指標的選擇要與容量變化成反比,在伸縮活動發生後,執行個體數量的變化可以降低對應的指標。
例如:配置擴容規則,如果在60秒內yarn_resourcemanager_queue_AppsPending的平均值 >= 1,該條件連續出現1次,則添加1個節點。擴容活動發生後,可以有效地減少隊列中掛起的任務數。
推薦指標如下表所示。
E-MapReduceAuto Scaling指標
所屬服務
說明
yarn_resourcemanager_queue_AvailableMBPercentage
YARN
root隊列可用記憶體資源所佔百分比。
yarn_resourcemanager_queue_AvailableVCores
YARN
root隊列可供分配的虛擬核心數。
yarn_resourcemanager_queue_AvailableMB
YARN
root隊列可供分配的記憶體。單位:MB。
yarn_resourcemanager_queue_AppsPending
YARN
root隊列掛起的任務數。
yarn_resourcemanager_queue_PendingContainers
YARN
root隊列待分配的容器數。
yarn_resourcemanager_queue_AvailableVCoresPercentage
YARN
root隊列可用CPU核心數資源所佔百分比。
配置一個合適的擴縮容規則。
首次配置時,擴容規則上可以首選pending相關的指標,而縮容規則可以選擇available相關的指標。
每一條規則內,您可以配置多條指標的觸發條件,並指定指標觸發之間的與或關係,可以更細粒度地控制伸縮條件。
為了避免頻繁的擴縮容導致的資源浪費,可以為縮容規則配置一定的冷卻時間。在冷卻時間內,即使滿足伸縮條件也不會發生Auto Scaling活動。
EMR平均擴容時間保持在1.55分鐘,擴容100個節點平均只需要1.83分鐘。因此可以設定擴容規則的冷卻時間在100s~300s左右,保證在新擴出的執行個體進入使用後,觀測到配置的指標是否有所回落,進而決定是否需要進行下一次的擴容,避免資源的浪費。
為了更快地響應指標的變化,建議時間粒紋配置為1分鐘,過大的時間粒紋會使用到期的歷史資料觸發伸縮活動,造成不必要的浪費。
擴縮容數量上,根據您現有的節點數量、處理的作業能力和期望的業務增長,預估指標回落所需要增加的節點數量進行配置。
配置時間約束(當前規則在一天之內生效的時間範圍),可以組合不同的伸縮規則,在不同時間段配置不同內容的伸縮條件。
設定最大最小值範圍。
当前节点组实例数限制可以約束整體的擴容數量。最大实例数保證不會在負載未滿足的情況下無限擴容,超出您的使用預算。最小实例数能保證有最小數量的執行個體處理您的業務問題,當您的執行個體因為某些意外因素被直接釋放後,Auto Scaling組也會為您補充執行個體,滿足最小數量。
調整規則。
配置規則後,您可以通過觀察一段時間的指標和伸縮活動記錄,適量地調整規則的配置參數。
當伸縮活動過於頻繁,剛擴容的執行個體頻繁縮掉,並且擴容的執行個體有所閑置時,可以在規則中使用與條件,增加指標觸發限制來減少擴縮容的頻率,或者適當延長規則的冷却时间。
當需要反覆擴容才能處理您提交的作業或者擴容速度無法及時處理業務作業時,可以適當增加每次規則引發時擴容的執行個體數量。