創(chuàng)建EMR Spark Streaming節(jié)點(diǎn)
EMR Spark Streaming節(jié)點(diǎn)用于處理高吞吐量的實(shí)時(shí)流數(shù)據(jù),并具備容錯機(jī)制,可以幫助您快速恢復(fù)出錯的數(shù)據(jù)流。本文為您介紹如何創(chuàng)建EMR Spark Streaming節(jié)點(diǎn)并進(jìn)行數(shù)據(jù)開發(fā)。
前提條件
已創(chuàng)建阿里云EMR集群,并注冊EMR集群至DataWorks。操作詳情請參見注冊EMR集群至DataWorks。
(可選,RAM賬號需要)進(jìn)行任務(wù)開發(fā)的RAM賬號已被添加至對應(yīng)工作空間中,并具有開發(fā)或空間管理員(權(quán)限較大,謹(jǐn)慎添加)角色權(quán)限,添加成員的操作詳情請參見為工作空間添加空間成員。
已購買Serverless資源組并完成資源組配置,包括綁定工作空間、網(wǎng)絡(luò)配置等,詳情請參見新增和使用Serverless資源組。
數(shù)據(jù)開發(fā)(DataStudio)中已創(chuàng)建業(yè)務(wù)流程。
數(shù)據(jù)開發(fā)(DataStudio)基于業(yè)務(wù)流程對不同開發(fā)引擎進(jìn)行具體開發(fā)操作,所以您創(chuàng)建節(jié)點(diǎn)前需要先新建業(yè)務(wù)流程,操作詳情請參見創(chuàng)建業(yè)務(wù)流程。
使用限制
僅支持使用Serverless資源組(推薦)或獨(dú)享調(diào)度資源組運(yùn)行該類型任務(wù)。
不支持EMR on ACK 類型的Spark集群創(chuàng)建使用EMR Spark Streaming節(jié)點(diǎn)進(jìn)行任務(wù)開發(fā)。
步驟一:創(chuàng)建EMR Spark Streaming節(jié)點(diǎn)
進(jìn)入數(shù)據(jù)開發(fā)頁面。
登錄DataWorks控制臺,切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)開發(fā)。
新建EMR Spark Streaming節(jié)點(diǎn)。
右鍵單擊目標(biāo)業(yè)務(wù)流程,選擇
。說明您也可以鼠標(biāo)懸停至新建,選擇
。在新建節(jié)點(diǎn)對話框中,輸入名稱,并選擇引擎實(shí)例、節(jié)點(diǎn)類型及路徑。單擊確認(rèn),進(jìn)入EMR Spark Streaming節(jié)點(diǎn)編輯頁面。
說明節(jié)點(diǎn)名稱支持大小寫字母、中文、數(shù)字、下劃線(_)和小數(shù)點(diǎn)(.)。
步驟二:開發(fā)EMR Spark Streaming任務(wù)
在EMR Spark Streaming節(jié)點(diǎn)編輯頁面雙擊已創(chuàng)建的節(jié)點(diǎn),進(jìn)入任務(wù)開發(fā)頁面,執(zhí)行如下開發(fā)操作。
創(chuàng)建并引用EMR JAR資源
如果您使用的是DataLake(新版數(shù)據(jù)湖)集群,則可通過如下步驟引用EMR JAR資源。
準(zhǔn)備EMR JAR示例代碼。
spark-submit --master yarn --deploy-mode cluster --name SparkPi --driver-memory 4G --driver-cores 1 --num-executors 5 --executor-memory 4G --executor-cores 1 --class org.apache.spark.examples.JavaSparkPi hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100
說明若EMR Spark Streaming節(jié)點(diǎn)依賴的資源較大,則無法通過DataWorks頁面上傳。您可將資源存放至HDFS上,然后在代碼中進(jìn)行引用。代碼示例如下。
創(chuàng)建EMR JAR資源,詳情請參見創(chuàng)建和使用EMR資源。首次使用需要進(jìn)行一鍵授權(quán)。
引用EMR JAR資源。
打開創(chuàng)建的EMR Spark Streaming節(jié)點(diǎn),停留在代碼編輯頁面。
在
節(jié)點(diǎn)下,找到待引用資源,右鍵選擇引用資源。選擇資源后,當(dāng)節(jié)點(diǎn)編輯頁面顯示
##@resource_reference{""}
格式的語句,表明資源引用成功。此時(shí),需要執(zhí)行下述命令。命令涉及的資源包、Bucket名稱、路徑信息等為本文示例的內(nèi)容,使用時(shí),請?zhí)鎿Q為實(shí)際使用的信息。##@resource_reference{"examples-1.2.0-shaded.jar"} --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>
開發(fā)SQL代碼
在EMR Spark Streaming節(jié)點(diǎn)的編輯頁面,輸入需要執(zhí)行的作業(yè)代碼。示例如下。
spark-submit --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>
示例在DataWorks上傳的資源為
examples-1.2.0-shaded.jar
。access-key-id
及access-key-secret
需要替換為您所使用的阿里云賬號的AccessKey ID及AccessKey Secret。您可以登錄DataWorks控制臺,鼠標(biāo)懸停至頂部菜單欄右側(cè)的用戶頭像,進(jìn)入AccessKey管理,獲取AccessKey ID及AccessKey Secret。EMR Spark Streaming節(jié)點(diǎn)編輯代碼時(shí)不支持注釋語句。
如果您工作空間的數(shù)據(jù)開發(fā)中綁定多個EMR數(shù)據(jù)源,則需要根據(jù)業(yè)務(wù)需求選擇合適的引擎。如果僅綁定一個EMR引擎,則無需選擇。
(可選)配置高級參數(shù)
您可在節(jié)點(diǎn)高級設(shè)置處配置特有屬性參數(shù)。更多屬性參數(shù)設(shè)置,請參考Spark Configuration。集群可配置的高級參數(shù)具體如下表。
DataLake集群:EMR on ECS
高級參數(shù) | 配置說明 |
queue | 提交作業(yè)的調(diào)度隊(duì)列,默認(rèn)為default隊(duì)列。關(guān)于EMR YARN說明,詳情請參見隊(duì)列基礎(chǔ)配置。 |
priority | 優(yōu)先級,默認(rèn)為1。 |
其他 | 您也可以直接在高級配置里追加自定義SparkConf參數(shù)。提交代碼時(shí)DataWorks會自行在命令中加上新增的參數(shù)。例如, |
執(zhí)行SQL任務(wù)
在工具欄單擊圖標(biāo),在參數(shù)對話框選擇已創(chuàng)建的調(diào)度資源組,單擊運(yùn)行。
說明訪問公共網(wǎng)絡(luò)或VPC網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)源需要使用與數(shù)據(jù)源測試連通性成功的調(diào)度資源組。詳情請參見網(wǎng)絡(luò)連通方案。
如果您后續(xù)執(zhí)行任務(wù)需要修改使用的資源組,您可單擊帶參運(yùn)行圖標(biāo),選擇需要更換的調(diào)度資源組。
單擊圖標(biāo),保存編寫的SQL語句。
(可選)冒煙測試。
如果您希望在開發(fā)環(huán)境進(jìn)行冒煙測試,可在執(zhí)行節(jié)點(diǎn)提交或節(jié)點(diǎn)提交后執(zhí)行冒煙測試,操作詳情請參見執(zhí)行冒煙測試。
步驟三:配置節(jié)點(diǎn)調(diào)度
如您需要周期性執(zhí)行創(chuàng)建的節(jié)點(diǎn)任務(wù),可單擊節(jié)點(diǎn)編輯頁面右側(cè)的調(diào)度配置,根據(jù)業(yè)務(wù)需求配置該節(jié)點(diǎn)任務(wù)的調(diào)度信息。配置詳情請參見任務(wù)調(diào)度屬性配置概述。
您需要設(shè)置節(jié)點(diǎn)的重跑屬性和依賴的上游節(jié)點(diǎn),才可以提交節(jié)點(diǎn)。
步驟四:發(fā)布節(jié)點(diǎn)任務(wù)
節(jié)點(diǎn)任務(wù)配置完成后,需執(zhí)行提交發(fā)布操作,提交發(fā)布后節(jié)點(diǎn)即會根據(jù)調(diào)度配置內(nèi)容進(jìn)行周期性運(yùn)行。
單擊工具欄中的圖標(biāo),保存節(jié)點(diǎn)。
單擊工具欄中的圖標(biāo),提交節(jié)點(diǎn)任務(wù)。
提交時(shí)需在提交對話框中輸入變更描述,并根據(jù)需要選擇是否在節(jié)點(diǎn)提交后執(zhí)行代碼評審。
說明您需設(shè)置節(jié)點(diǎn)的重跑屬性和依賴的上游節(jié)點(diǎn),才可提交節(jié)點(diǎn)。
代碼評審可對任務(wù)的代碼質(zhì)量進(jìn)行把控,防止由于任務(wù)代碼有誤,未經(jīng)審核直接發(fā)布上線后出現(xiàn)任務(wù)報(bào)錯。如進(jìn)行代碼評審,則提交的節(jié)點(diǎn)代碼必須通過評審人員的審核才可發(fā)布,詳情請參見代碼評審。
如您使用的是標(biāo)準(zhǔn)模式的工作空間,任務(wù)提交成功后,需單擊節(jié)點(diǎn)編輯頁面右上方的發(fā)布,將該任務(wù)發(fā)布至生產(chǎn)環(huán)境執(zhí)行,操作請參見發(fā)布任務(wù)。
后續(xù)步驟
任務(wù)提交發(fā)布后,會基于節(jié)點(diǎn)的配置周期性運(yùn)行,您可單擊節(jié)點(diǎn)編輯界面右上角的運(yùn)維,進(jìn)入運(yùn)維中心查看周期任務(wù)的調(diào)度運(yùn)行情況。詳情請參見查看并管理周期任務(wù)。