配額組(Quota)是MaxCompute的計算資源集區,為MaxCompute中的計算作業提供所需計算資源(CPU及記憶體)。在MaxCompute中支援根據計算作業對計算資源的需求,指定匹配的Quota,助力您高效使用計算資源。本文為您介紹如何使用MaxCompute的Quota。
背景資訊
MaxCompute的計算資源配額組支援使用方式如下。
通過Project關聯預設計算Quota,實現Project提交的作業使用此Quota進行計算。
作業層級指定使用計算Quota(use quota),通過此功能可以支援將一個Project裡的作業指定到不同的Quota進行計算,包括指定訂用帳戶、隨用隨付的Quota。作業層級指定的Quota優先順序大於Project預設的Quota。
通過對Quota配置規則條件,實現滿足規則條件的作業可調度到對應Quota。
Project設定預設Quota
Project設定預設計算Quota ,即此Project發起的作業預設會使用預設Quota的資源進行計算,無需其他設定。建立專案時可以直接選擇關聯預設Quota,也可以通過控制台專案管理對專案進行預設Quota切換,詳情請參見設定項目。
作業層級指定Quota
作業層級指定Quota主要是在作業前面通過命令進行指定,此功能會校正作業所有者是否有該Quota的使用許可權,具體操作步驟如下。
建立Quota。
使用新版控制台建立Quota請參見配置Quota。
說明
Quota名稱建議使用英文字母和數位組合。已經存在的中文Quota名稱可繼續使用。
授權。
當前針對作業層級指定Quota功能的鑒權預設是所有帳號(包括阿里雲帳號)和角色都沒有許可權,需要進行授權操作。
新增角色。
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列單擊租戶管理。
在租戶管理頁面,單擊角色管理。
在角色管理頁簽,單擊新增角色。
在新增角色對話方塊,自訂角色名稱和使用如下權限原則內容。
{
"Statement": [{
"Action": [
"odps:List",
"odps:Usage"],
"Effect": "Allow",
"Resource": ["acs:odps:*:regions/*/quotas/*"]}],
"Version": "1"
}
參數說明如下。
參數 | 說明 |
Action | 指定被授予的操作許可權名稱。單次授權可以指定多個操作,可根據實際情況自行添加操作許可權名稱。當有多個操作時,多個操作名稱之間使用半形逗號(,)分隔。操作取值請參見MaxCompute許可權。 |
Resource | 指定被授權的資源範圍,格式為["acs:odps:Tenant/${tenant_id}:regions/${region_id}/quotas/${quota_name}"] 。 ["acs:odps:*:regions/*/quotas/*"] 含義為當前租戶下所有Region下的所有Quota,可根據實際情況自行選擇具體Region和Quota。
|
單擊確定,完成新增角色。
將角色授權給需要進行作業層級指定Quota的帳號。
說明
預設主帳號或者擁有賬戶層級(tenant)Super_Administrator的子帳號可進行授權操作。
由於授權對象的差別,會出現如下兩種情境。
對阿里雲帳號授權。
目前需要通過如下命令對阿里雲帳號授權。
Add tenant user <Aliyun$xxxx>;
Grant tenant role <role_name> to user <Aliyun$xxxx>;
Show grants for tenant role <role_name>;
Show grants for tenant user <user_name>;
Show principals for tenant [role] <role_name>;
對RAM使用者授權。
在MaxCompute控制台左側導覽列,單擊租戶管理>使用者管理。
在對應RAM使用者的操作列,單擊修改角色。
在編輯角色對話方塊,選擇待添加角色地區中的目標角色至已添加角色地區。
單擊確定,完成授權。
作業指定Quota。
在作業的Query前使用如下命令指定Quota。
set odps.task.wlm.quota=<quotaname>;
quotaname為Quota名稱,且僅對批處理類型的Quota有效。
說明
若您是Spark作業指定Quota需要加配置項spark.hadoop.odps.task.wlm.quota
填入<quotaname>
值。
對於查詢加速作業,需要注意以下幾點:
互動式Quota不能通過如上命令直接指定,只能通過進入查詢加速模式時被系統自動選定,詳情請參見查詢加速(MCQA)。
set odps.task.wlm.quota=<quotaname>;
命令指定的Quota,含義是在互動Quota中執行任務失敗後回退到quotaname
中執行,而不是加速Quota選擇quotaname
,因此查詢加速成功的作業消費仍將計入作業執行專案綁定的預設計算Quota。
當不顯式指定odps.task.wlm.quota
時,互動式任務會嘗試首先回退到Quota規則指定的Quota。如果沒有配置Quota規則,任務將回退到專案的預設Quota。
Quota規則
MaxCompute支援對Quota配置規則條件,指定滿足某些條件的作業可以被調度到對應的Quota裡執行。
使用限制
訂用帳戶、隨用隨付(標準版和閑時版)二級Quota均支援規則配置。
每個二級Quota最多可配置10條規則。
每個規則中,專案、作業Owner參數最多可輸入50個對象,即一條規則最多可以指定給50個專案、50個作業Owner(uid)使用。
每個規則中,Settings最多輸入5個Key Value對。
每個規則中,作業優先順序的取值範圍是[0, 9]
。
配置Quota規則
只要配置了Quota規則,規則都是生效的,如果不需要可以刪除,多個規則為或(or)關係,只要job匹配該Quota任意一個規則即可被調度或被禁止調度到該Quota。
說明
Quota規則非常靈活,尤其是Settings規則項。配置時應當盡量保守的運用,防止規則過多給後期營運帶來困難。
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇工作區 > 配額(Quota)管理。
在Quota管理頁面,單擊一級Quota左側的
表徵圖可以展開二級Quota列表
單擊目標二級Quota操作列的規則配置。
在Quota規則配置對話方塊,單擊添加規則或單擊已存在規則操作列的複製建立規則,配置如下參數。
參數說明如下。
參數 | 說明 |
規則名稱 | 自訂Quota規則名稱。 支援字母開頭,包含字母、數字和底線(_)。 |
規則模式 | Quota規則啟動並執行模式,取值如下。 重要 排他模式規則和禁止模式規則優先順序高於普通模式規則。即如果作業不匹配Quota A的某個排他模式規則或者匹配某個禁用模式規則。則作業無論是否匹配Quota A的普通規則,或被手動指定到Quota A,都無法調度到Quota A運行。 |
專案 | 選擇需要配置到規則裡的專案,最多可選擇50個專案。 |
作業類型 | 選擇需要配置到規則裡的作業類型。 作業類型取值如下: SQL:SQL作業 SQLRT:查詢加速SQL作業 SQLCost:SQL預估作業 LOT:MapReduce作業 CUPID:Spark或Mars作業 AlgoTask:機器學習作業
|
作業優先順序 | 輸入需要配置到規則裡的作業優先順序。輸入0-9 優先順序區間,如:[0,3] 表示優先順序為0、1、2、3優先順序的作業。 |
作業Owner(uid) | 輸入需要配置到規則裡的作業Owner uid,多個uid為或(or)關係,請換行分隔,最多可輸入50個uid。 若輸入RAM使用者的uid需要加上p4_ 首碼,例如p4_12344566777 ;若輸入RAM角色的uid需加上v4_ 首碼,例如v4_12344566776 。 |
作業Settings | 請輸入作業Settings中的Key Value,格式為Key=Value ,無需加上引號。多個參數為與(and)關係,請換行分隔,最多可輸入5個。 例如,所有DataWorks調度發起的補資料作業都在當前Quota運行,可在作業Settings中輸入SKYNET_DAGTYPE=3 ,詳情請參見補資料作業隔離。 |
單擊確定。
應用樣本