用戶可將自己開發的程序提交到MRS中,執行程序并獲取結果。本章節教您在MRS集群頁面如何提交一個新的Spark作業。
前提條件
用戶已經將運行作業所需的程序包和數據文件上傳至OBS系統或HDFS中。
通過界面提交作業
1.登錄MRS管理控制臺。
2.選擇“集群列表 > 現有集群”,選中一個運行中的集群并單擊集群名稱,進入集群信息頁面。
3.若集群開啟Kerberos認證時執行該步驟,若集群未開啟Kerberos認證,請無需執行該步驟。
在“概覽”頁簽的基本信息區域,單擊“IAM用戶同步”右側的“同步”進行IAM用戶同步。
說明
當IAM用戶的用戶組的所屬策略從MRS ReadOnlyAccess向MRS CommonOperations、MRS FullAccess、MRS Administrator變化時,由于集群節點的SSSD(System Security Services Daemon)緩存刷新需要時間,因此同步完成后,請等待5分鐘,等待新修改策略生效之后,再進行提交作業。否則,會出現提交作業失敗的情況。
當IAM用戶的用戶組的所屬策略從MRS CommonOperations、MRS FullAccess、MRS Administrator向MRS ReadOnlyAccess變化時,由于集群節點的SSSD緩存刷新需要時間,因此同步完成后,請等待5分鐘,新修改策略才能生效。
4.單擊“作業管理”,進入“作業管理”頁簽。
5.單擊“添加”,進入“添加作業”頁面。
6.配置作業信息。“作業類型”選擇“SparkSubmit”并參考下表配置SparkSubmit作業其他參數信息。
作業配置信息
| 參數 | 參數說明 |
|---|---|
| 作業名稱 | 作業名稱,只能由字母、數字、中劃線和下劃線組成,并且長度為1~64個字符。 說明 建議不同的作業設置不同的名稱。 |
| 執行程序路徑 | 待執行程序包地址,需要滿足如下要求: 最多為1023字符,不能包含 ;l&>,<'$特殊符號和空格。 執行程序路徑可存儲于HDFS或者OBS中,不同的文件系統對應的路徑存在差異。 - OBS:以“obs://”開頭。示例: obs://wordcount/program/xxx.jar。 ? HDFS:以“/user”開頭。數據導入HDFS請參考導入導出數據章節中的“導入數據”。 SparkScript和HiveScript需要以“.sql”結尾,MapReduce需要以“.jar”結尾,Flink和SparkSubmit需要以“.jar”或“.py”結尾。sql、jar、py不區分大小寫。 |
| 運行程序參數 | 可選參數,為本次執行的作業配置相關優化參數(例如線程、內存、CPU核數等),用于優化資源使用效率,提升作業的執行性能。 常用運行程序參數如下表“運行程序參數”。 |
| 執行程序參數 | 可選參數,程序執行的關鍵參數,該參數由用戶程序內的函數指定,MRS只負責參數的傳入。多個參數間使用空格隔開。 最多為150000字符,不能包含 ;l&><'$特殊字符,可為空。 注意 若輸入帶有敏感信息(如登錄密碼)的參數可能在作業詳情展示和日志打印中存在暴露的風險,請謹慎操作。 |
| 服務配置參數 | 可選參數,用于為本次執行的作業修改服務配置參數。該參數的修改僅適用于本次執行的作業,如需對集群永久生效,請參考配置服務參數頁面進行修改。 如需添加多個參數,請單擊右側 增加,如需刪除參數,請單擊右側“刪除”。常用服務配置參數如下表“服務配置參數”。 說明 如需運行長時間作業如SparkStreaming等,且需要訪問OBS,需要通過“服務配置參數”傳入訪問OBS的AK/SK。 |
| 命令參考 | 用于展示提交作業時提交到后臺執行的命令。 |
運行程序參數
| 參數 | 參數說明 | 取值樣例 |
|---|---|---|
| --conf | 添加任務配置項。 | spark.executor.memory=2G |
| --driver-memory | 設置driver的運行內存。 | 2G |
| --num-executors | 設置executor啟動數量。 | 5 |
| --executor-cores | 設置executor核數。 | 2 |
| --class | 設置任務的主類。 | org.apache.spark.examples.SparkPi |
| --files | 上傳文件給任務,可以是自己定義的配置文件或者某些數據文件。來源可以是OBS或者HDFS。 | - |
| --jars | 上傳任務額外依賴包,用于給任務添加任務的外部依賴包。 | - |
| --executor-memory | 設置executor內存。 | 2G |
| --conf spark-yarn.maxAppAttempts | 控制AM的重試次數。 | 設置為0時,不允許重試;設置為1時,允許重試一次。 |
服務配置參數
| 參數 | 參數說明 | 取值樣例 |
|---|---|---|
| fs.obs.access.key | 訪問OBS的密鑰ID。 | - |
| fs.obs.secret.key | 訪問OBS與密鑰ID對應的密鑰。 | - |
7.確認作業配置信息,單擊“確定”,完成作業的新增。
作業新增完成后,可對作業進行管理。
通過后臺提交作業
MRS 3.x及之后版本客戶端默認安裝路徑為“/opt/Bigdata/client”,MRS 3.x之前版本為“/opt/client”。具體以實際為準。
1.參考創建用戶頁面,創建一個用于提交作業的用戶。
本示例創建一個用戶開發場景使用的機機用戶,并分配了正確的用戶組(hadoop、supergroup)、主組(supergroup)和角色權限(System_administrator、default)。
2.下載認證憑據。
- 對于MRS 3.x及之后版本集群,請登錄FusionInsight Manager頁面選擇“系統 > 權限 > 用戶”,在新增用戶的操作列單擊“更多 > 下載認證憑據”。
- 對于MRS 3.x之前版本集群,請登錄MRS Manager頁面選擇“系統設置 > 用戶管理”,在新增用戶的操作列單擊“更多 > 下載認證憑據”。
3.將與作業相關的jar包上傳到集群中,本示例使用Spark自帶的樣例jar包,位置在“$SPARK_HOME/examples/jars”下。
4.上傳步驟2創建的用戶認證憑據到集群的“/opt”目錄下,并執行如下命令解壓。
tar –xvfMRSTest_xxxxxx_keytab.tar
您將會得到user.keytab和krb5.conf兩個文件。
5.在對集群操作之前首先需要執行:
source /opt/Bigdata/client/bigdata_env
cd $SPARK_HOME
6.提交spark作業,使用的命令如下:
./bin/spark-submit--master yarn --deploy-mode client --conf spark.yarn.principal=MRSTest --conf
spark.yarn.keytab=/opt/user.keytab --class org.apache.spark.examples.SparkPi
examples/jars/spark-examples_2.11-2.3.2-mrs-2.0.jar 10
參數解釋:
1.yarn的計算能力,指定使用client模式提交該作業。
2.Spark作業的配置項,這里是傳入了認證文件和用戶名。
3.spark.yarn.principal 第一步創建的用戶。
4.spark.yarn.keytab 認證使用的keytab文件。
5.xx.jar 作業的使用的jar。
增加,如需刪除參數,請單擊右側“刪除”。