Spark是一個通用的大數據分析引擎,具有高性能、易用和普遍性等特點,可用于進行復雜的內存分析,構建大型、低延遲的數據分析應用。DataWorks為您提供CDH Spark節點,便于您在DataWorks上進行Spark任務的開發和周期性調度。本文為您介紹如何創建及使用CDH Spark節點。
前提條件
數據開發(DataStudio)中已創建業務流程。
數據開發(DataStudio)基于業務流程對不同開發引擎進行具體開發操作,所以您創建節點前需要先新建業務流程,操作詳情請參見創建業務流程。
已創建阿里云CDH集群,并注冊CDH集群至DataWorks。
創建CDH相關節點并開發CDH任務前,您需要先將CDH集群注冊至DataWorks工作空間,操作詳情請參見注冊CDH集群至DataWorks。
(可選,RAM賬號需要)進行任務開發的RAM賬號已被添加至對應工作空間中,并具有開發或空間管理員(權限較大,謹慎添加)角色權限,添加成員的操作詳情請參見為工作空間添加空間成員。
已購買Serverless資源組并完成資源組配置,包括綁定工作空間、網絡配置等,詳情請參見新增和使用Serverless資源組。
使用限制
支持Serverless資源組(推薦)或舊版獨享調度資源組運行該類型任務。
準備工作:開發Spark任務并獲取JAR包
在使用DataWorks調度CDH Spark任務前,您需要先在CDH中開發Spark任務代碼并完成任務代碼的編譯,生成編譯后的任務JAR包,CDH Spark任務的開發指導詳情請參見Spark概述。
后續您需要將任務JAR包上傳至DataWorks,在DataWorks中周期性調度CDH Spark任務。
步驟一:創建CDH Spark節點
進入數據開發頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據開發。
右鍵單擊某個業務流程,選擇
。在新建節點對話窗中,配置節點的引擎實例、路徑、名稱等信息。
單擊確認 ,完成節點創建,后續您可在創建的節點中進行對應任務的開發與配置操作。
步驟二:創建并引用CDH JAR資源
您可以在創建的CDH Spark節點中引用JAR包資源,并編寫CDH Spark節點代碼,通過Spark Submit命令提交任務。具體操作如下:
創建CDH JAR資源。
在對應業務流程中,右鍵單擊
,選擇 ,在新建資源對話框中點擊上傳,選擇需要上傳的文件。引用CDH JAR資源。
打開創建的CDH節點,停留在編輯頁面。
在
中,找到待引用的資源(示例為spark-examples_2.11_2.4.0.jar
),右鍵單擊資源名稱,選擇引用資源。引用資源后,若CDH節點的代碼編輯頁面出現
##@resource_reference{""}
格式的語句,表明已成功引用代碼資源。示例如下:##@resource_reference{"spark_examples_2.11_2.4.0.jar"} spark_examples_2.11_2.4.0.jar
修改CDH Spark節點代碼,補充Spark Submit命令,修改后的示例如下。
重要CDH Spark節點編輯代碼時不支持注釋語句,請務必參考如下示例改寫任務代碼,不要隨意添加注釋,否則后續運行節點時會報錯。
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi --master yarn spark-examples_2.11-2.4.0.jar 100
其中:
org.apache.spark.examples.SparkPi:為您實際編譯的JAR包中的任務主Class。
spark-examples_2.11-2.4.0.jar:為您實際上傳的CDH JAR資源名稱。
步驟三:配置任務調度
如果您需要周期性執行創建的節點任務,可以單擊節點編輯頁面右側的調度配置,根據業務需求配置該節點任務的調度信息:
步驟四:調試代碼任務
(可選)選擇運行資源組、賦值自定義參數取值。
在工具欄單擊圖標,在參數對話框選擇已調試運行需要使用的資源組。
如果您的任務代碼中有使用調度參數變量,可在此處為變量賦值,用于調試。參數賦值邏輯詳情請參見運行,高級運行和開發環境冒煙測試賦值邏輯有什么區別。
保存并運行SQL語句。
在工具欄,單擊圖標,保存編寫的SQL語句,單擊圖標,運行創建的SQL任務。
(可選)冒煙測試。
如果您希望在開發環境進行冒煙測試,可在執行節點提交,或節點提交后執行,冒煙測試,操作詳情請參見執行冒煙測試。
后續步驟
相關場景
DataWorks平臺提供了完善的作業調度和監控功能,確保您的Spark作業能夠順利提交到CDH集群執行。這種方式不僅簡化了作業的運維流程,還使得資源管理更為高效,以下是一些Spark任務的應用場景:
數據分析:利用Spark SQL、Dataset以及DataFrame API進行復雜的數據聚合、篩選和轉換,快速洞察數據。
流處理:利用Spark Streaming處理實時數據流,并進行即時分析和決策。
機器學習任務:使用Spark MLlib進行數據預處理、特征提取、模型訓練和評估。
大規模ETL任務:進行大數據集的抽取、轉換和加載,為數據倉庫或其他存儲系統準備數據。