用戶可將自己開發的程序提交到MRS中,執行程序并獲取結果。本章節教您在MRS集群頁面如何提交一個新的SparkSql作業。SparkSQL作業用于查詢和分析數據,包括SQL語句和Script腳本兩種形式,如果SQL語句涉及敏感信息,請使用Spark Script提交。
前提條件
用戶已經將運行作業所需的程序包和數據文件上傳至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.請單擊“添加”,進入添加作業頁面,“作業類型”選擇“SparkSql”,作業參考下表配置SparkSql作業信息。
作業配置信息
| 參數 | 參數說明 |
|---|---|
| 作業名稱 | 作業名稱,只能由字母、數字、中劃線和下劃線組成,并且長度為1~64個字符。 說明 建議不同的作業設置不同的名稱。 |
| SQL類型 | SQL查詢語句提交類型。 SQL Script |
| SQL語句 | “SQL類型”參數為“SQL”時參數有效,請輸入待運行的SQL語句,然后單擊“檢查”來檢查SQL語句的正確性,確保輸入語句正確。如果同時需要提交多條語句并執行,使用“;”分隔不同語句。 |
| SQL文件 | “SQL類型”參數為“Script”時參數有效,待執行SQL文件的路徑,需要滿足以下要求。 最多為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不區分大小寫。 說明 存儲在OBS上的文件路徑支持以“obs://”開頭格式。如需使用該格式提交作業,訪問OBS需要配置對應權限。 創建集群時開啟“OBS權限控制”功能時,可直接使用“obs://”路徑,無需單獨配置。 創建集群時未開啟或不支持“OBS權限控制”功能時,請參考配置存算分離集群(委托方式)章節訪問OBS頁面進行配置。 |
| 運行程序參數 | 可選參數,為本次執行的作業配置相關優化參數(例如線程、內存、CPU核數等),用于優化資源使用效率,提升作業的執行性能。 常用運行程序參數如下表“運行程序參數”。 |
| 服務配置參數 | 可選參數,用于為本次執行的作業修改服務配置參數。該參數的修改僅適用于本次執行的作業,如需對集群永久生效,請參考配置服務參數頁面進行修改。 如需添加多個參數,請單擊右側 ![]() 增加,如需刪除參數,請單擊右側“刪除”。常用服務配置參數如下表“服務配置參數”。 |
| 命令參考 | 用于展示提交作業時提交到后臺執行的命令。 |
運行程序參數
| 參數 | 參數說明 | 取值樣例 |
|---|---|---|
| --conf | 添加任務配置項。 | spark.executor.memory=2G |
| --driver-memory | 設置driver的運行內存。 | 2G |
| --num-executors | 設置executor啟動數量。 | 5 |
| --executor-cores | 設置executor核數。 | 2 |
| --jars | 上傳任務額外依賴包,用于給任務添加任務的外部依賴包。 | - |
| --executor-memory | 設置executor內存。 | 2G |
服務配置參數
| 參數 | 參數說明 | 取值樣例 |
|---|---|---|
| fs.obs.access.key | 訪問OBS的密鑰ID。 | - |
| fs.obs.secret.key | 訪問OBS與密鑰ID對應的密鑰。 | - |
6.確認作業配置信息,單擊“確定”,完成作業的新增。
作業新增完成后,可對作業進行管理。
通過后臺提交作業
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.登錄Spark客戶端所在節點,上傳2創建的用戶認證憑據到集群的“/opt”目錄下,并執行如下命令解壓:
tar –xvfMRSTest_xxxxxx_keytab.tar
得到user.keytab和krb5.conf兩個文件。
4.在對集群操作之前首先需要執行:
source /opt/Bigdata/client/bigdata_env
cd $SPARK_HOME
5.打開spark-sql命令行,進入spark-sql命令行后可執行SQL語句,執行命令如下:
./bin/spark-sql--conf spark.yarn.principal=MRSTest --conf
spark.yarn.keytab=/opt/user.keytab
若需要執行SQL文件,需要上傳SQL文件(如上傳到“/opt/”目錄),上傳文件后執行命令如下:
./bin/spark-sql--conf spark.yarn.principal=MRSTest --conf
spark.yarn.keytab=/opt/user.keytab-f /opt/script.sql

增加,如需刪除參數,請單擊右側“刪除”。