Spark SQL可實現分布式SQL查詢引擎處理結構化數據,提高作業的執行效率。DataWorks的CDH Spark SQL節點可進行CDH Spark SQL任務的開發和周期性調度,以及與其他作業的集成操作。本文為您介紹如何創建及使用CDH Spark SQL節點。
前提條件
數據開發(DataStudio)中已創建業務流程。
數據開發(DataStudio)基于業務流程對不同開發引擎進行具體開發操作,所以您創建節點前需要先新建業務流程,操作詳情請參見創建業務流程。
已創建阿里云CDH集群,并注冊CDH集群至DataWorks。
創建CDH相關節點并開發CDH任務前,您需要先將CDH集群注冊至DataWorks工作空間,操作詳情請參見注冊CDH集群至DataWorks。
已購買Serverless資源組,并完成資源組的相關配置(包括綁定工作空間、網絡配置)等,詳情請參見新增和使用Serverless資源組。
使用限制
僅支持使用Serverless資源組運行CDH Spark SQL節點任務。
步驟一:創建CDH Spark SQL節點
進入數據開發頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據開發。
右鍵單擊目標業務流程,選擇
。在新建節點對話框輸入節點名稱,單擊確認。節點創建完成,您可在節點中進行對應任務的開發與配置。
步驟二:開發CDH Spark SQL任務
(可選)選擇CDH集群實例
若您的工作空間注冊了多個CDH集群,則可在節點編輯頁面頂部選擇合適的集群。若僅注冊了一個CDH集群,默認使用該集群進行開發操作。
開發SQL代碼
開發SQL代碼:簡單示例
在CDH Spark SQL節點的代碼編輯區域編寫要執行的任務。
示例在test_spark
數據庫中創建test_lineage_table_f1
、test_lineage_table_t2
表,并且從test_lineage_table_f1
表向test_lineage_table_t2
表復制數據,代碼如下:
本示例僅為參考,實際使用時請替換為您自己的數據庫環境。
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_f1 (`id` BIGINT, `name` STRING)
PARTITIONED BY (`ds` STRING);
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_t2 AS SELECT * FROM test_spark.test_lineage_table_f1;
INSERT into test_spark.test_lineage_table_t2 SELECT * FROM test_spark.test_lineage_table_f1;
開發SQL代碼:使用調度參數
DataWorks提供的調度參數可實現周期調度場景下代碼動態入參,您可在節點任務中通過${變量名}
的方式定義代碼中的變量,并在節點編輯頁面右側導航欄的調度配置>調度參數,為該變量賦值。調度參數支持的格式及配置詳情,請參見調度參數支持的格式、配置并使用調度參數。
示例代碼如下。
SELECT '${var}'; --可結合調度參數使用。
(可選)配置高級參數
在CDH Spark SQL節點編輯頁面,單擊右側導航欄的高級設置,即可配置任務運行相關的參數。例如:
"spark.driver.memory": "2g"
:用于設置分配給Spark驅動節點的內存大小。"spark.yarn.queue": "haha"
:用于設置應用程序提交到YARN的哪個隊列。
更多高級參數的配置,請參見Spark Configuration。
步驟三:配置任務調度
如您需要周期性執行創建的節點任務,可單擊節點編輯頁面右側的調度配置,根據業務需求配置該節點任務的調度信息。配置詳情請參見任務調度屬性配置概述。
您需要設置節點的重跑屬性和依賴的上游節點,才可以提交節點。
步驟四:調試任務代碼
您可根據需要執行如下調試操作,查看任務是否符合預期。
步驟五:提交發布任務
節點任務配置完成后,需執行提交發布操作,提交發布后節點即會根據調度配置內容進行周期性運行。
單擊工具欄中的圖標,保存節點。
單擊工具欄中的圖標,提交節點任務。
提交時需在提交對話框中輸入變更描述,并根據需要選擇是否在節點提交后執行代碼評審。
說明您需設置節點的重跑屬性和依賴的上游節點,才可提交節點。
代碼評審可對任務的代碼質量進行把控,防止由于任務代碼有誤,未經審核直接發布上線后出現任務報錯。如進行代碼評審,則提交的節點代碼必須通過評審人員的審核才可發布,詳情請參見代碼評審。
如您使用的是標準模式的工作空間,任務提交成功后,需單擊節點編輯頁面右上方的發布,將該任務發布至生產環境執行,操作請參見發布任務。