當您希望以較低的成本執行Spark作業(包括Spark SQL作業和Spark Jar作業)時,可以為Job型資源群組開啟競價執行個體功能。開啟競價執行個體功能後,叢集會嘗試使用閑置(更低價)的Spark Executor資源執行Spark作業。本文主要介紹什麼是競價執行個體,競價執行個體的應用情境以及使用方法。
什麼是競價執行個體
AnalyticDB for MySQL資源集區中會有一些閑置的Spark Executor資源,資源會以折扣的方式進行售賣,這些資源也被稱為競價執行個體(搶佔式執行個體)。
競價執行個體資源與ACU彈性資源有以下區別:
競價執行個體資源費用比ACU彈性資源的費用更低,大約是ACU彈性資源費用的7折左右。
當您在已開啟競價執行個體功能的Job型資源群組中提交Spark作業時,叢集會優先搶佔閑置、低價的競價執行個體資源,若搶佔成功,該Spark作業在執行時會使用競價執行個體資源,並按照競價執行個體資源計費;若搶佔失敗,該Spark作業會使用ACU彈性資源,按照ACU彈性資源計費。
阿里雲為AnalyticDB for MySQL競價執行個體預設提供一小時保護期,保證在一小時內競價執行個體的資源不會因其他資源搶佔而釋放。超過競價執行個體保護期後,競價執行個體的資源可能會被搶佔,搶佔的機率隨資源使用時間增加而增加。
使用競價執行個體資源執行Spark作業的優先順序較低。當其他叢集提交了不使用競價執行個體資源的Spark作業時,有可能會搶佔您的競價執行個體資源,導致競價執行個體資源釋放,進而導致使用競價執行個體的Spark作業運行失敗。競價執行個體釋放導致作業失敗的機率大約為1%~5%。
應用情境及建議
建議您在以下情境中開啟競價執行個體功能:
Spark作業開發。
對成本較為敏感。
對Spark作業失敗的容忍度較高。
大部分Spark作業的執行時間在一小時以內。
對於混合型業務(既有執行時間超過一小時的作業,也有執行時間小於一小時的作業)情境,有以下建議:
建立兩個Job型資源群組,其中一個資源群組開啟競價執行個體功能,且在該資源群組中僅執行已耗用時間較短的任務;另一個資源群組不開啟競價執行個體功能,在該資源群組中僅執行已耗用時間較長的作業。
建立一個Job型資源群組且開啟競價執行個體功能,在執行Spark作業時,通過配置
spark.adb.spotInstance.disabled
參數指定該Spark作業不使用競價執行個體功能。詳情,請參見指定Spark作業不使用競價執行個體(可選)。
使用限制
僅部分地區支援競價執行個體:華北1(青島)、華北2(北京)、華北3(張家口)、華東1(杭州)、華東2(上海)、華南1(深圳)、華南3(廣州)、中國(香港)、日本(東京)、新加坡、美國(矽谷)、美國(維吉尼亞)、德國(法蘭克福)、英國(倫敦)。
僅支援為Job型資源群組開啟競價執行個體功能,開啟該功能後,並不意味該資源群組中所有的資源和所有Spark作業都會使用競價執行個體,僅意味該資源群組中的Spark作業在執行時會嘗試使用競價執行個體功能。
僅支援Spark作業使用競價執行個體功能。
僅部分Spark Executor規格支援競價執行個體:large和2xlarge。Spark Executor資源規格的詳細資料,請參見Spark Executor資源規格。
費用說明
競價執行個體資源的費用相較於原本的ACU彈性資源費用有一定的折扣,大約為7折。費用詳情,請參見湖倉版產品定價。
叢集中未被分配的計算預留資源可以用於抵扣競價執行個體資源,若使用的競價執行個體資源總量小於未被分配的計算預留資源,則直接抵扣;反之超出部分將按照競價執行個體資源的費用計費。競價執行個體資源使用量的查看方法,請參見查看競價執行個體的計算資源用量。
開啟競價執行個體
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊叢集管理>資源管理,單擊資源群組管理頁簽。
為已有Job型資源群組開啟競價執行個體
單擊Job型資源群組操作列的修改。
在彈出的修改資源群組面板中,開啟競價執行個體開關。
單擊確定。
在資源群組對應的競價執行個體列查看是否已開啟競價執行個體功能。
開啟競價執行個體功能後,Job型資源群組上所啟動並執行Spark作業都會嘗試使用競價執行個體功能。
建立Job型資源群組時開啟競價執行個體
單擊資源群組列表右上方的新增資源群組,並填寫資源群組資訊。
參數名稱
說明
資源組名稱
自訂資源群組的名稱。輸入長度在2~30位,以字母開頭,只能包含字母、數字和底線。
任務類型
在下拉式清單中選擇Job,Job型資源群組主要適用於高吞吐離線情境,使用按需彈性方式進行計算資源擴容和縮容。
計算最小資源
最小取值為0 ACU。
計算最大資源
控制台可設定的計算最大資源為1024 ACU,步長為8 ACU。若您有需求,可提交工單聯絡支援人員調大資源。
競價執行個體
是否開啟競價執行個體。
開啟競價執行個體後,運行在Job型資源群組上的Spark作業會嘗試使用競價執行個體資源。更多資訊,請參見競價執行個體。
單擊確定,完成建立資源群組。
資源群組建立後,在資源群組對應的競價執行個體列查看是否已開啟競價執行個體功能。
開啟競價執行個體功能後,Job型資源群組上所啟動並執行Spark作業都會嘗試使用競價執行個體功能。
指定Spark作業不使用競價執行個體(可選)
若您不希望Spark作業在執行時使用競價執行個體功能,可以在Spark作業的CONF
參數中配置以下參數:
參數名稱 | 是否必填 | 參數說明 |
spark.adb.spotInstance.disabled | 否 | Spark作業在執行時是否使用競價執行個體。取值:
|
作業執行成功後,您可以通過查看競價執行個體資源使用量,確認配置是否修改成功。如果競價執行個體資源使用量為0,則表示提交的Spark作業在執行時未使用競價執行個體資源。
查看競價執行個體資源使用量
Spark作業執行完成後,您可以在Job型資源群組的監控頁面查看競價執行個體資源的使用量。具體步驟及說明,請參見查看資源群組的計算資源用量。
關閉競價執行個體
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊叢集管理>資源管理,單擊資源群組管理頁簽。
單擊Job型資源群組操作列的修改。
在彈出的修改資源群組面板中,關閉競價執行個體開關。
單擊確定。
在資源群組對應的競價執行個體列查看是否已關閉競價執行個體功能。
相關API
API名稱 | 說明 |
為湖倉版叢集建立資源群組。 | |
修改湖倉版叢集的已有資源群組。 | |
查詢湖倉版叢集的資源群組資訊。 | |
查詢湖倉版叢集的資源使用詳情。 |