日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

創建EMR Shell節點

為了滿足特定業務需求,您可以在DataWorks中創建EMR Shell節點。通過編輯自定義Shell腳本,對數據處理、調用Hadoop組件、操作文件等高級功能進行使用。本文介紹了在DataWorks里配置和使用EMR Shell節點,以便您編輯和運行Shell任務。

前提條件

  • 已創建阿里云EMR集群,并注冊EMR集群至DataWorks。操作詳情請參見注冊EMR集群至DataWorks。

  • (可選,RAM賬號需要)進行任務開發的RAM賬號已被添加至對應工作空間中,并具有開發空間管理員(權限較大,謹慎添加)角色權限,添加成員的操作詳情請參見為工作空間添加空間成員。

  • 已購買Serverless資源組并完成資源組配置,包括綁定工作空間、網絡配置等,詳情請參見新增和使用Serverless資源組。

  • 數據開發(DataStudio)中已創建業務流程。

    數據開發(DataStudio)基于業務流程對不同開發引擎進行具體開發操作,所以您創建節點前需要先新建業務流程,操作詳情請參見創建業務流程

  • 在DataWorks資源組本地運行Python腳本時,代碼需要調用第三方包,需要根據任務使用的資源組不同,采用不同方式在資源組上準備第三方包環境:

    • Serverless資源組(推薦):通過鏡像管理安裝第三方包,詳情請參見鏡像管理。

    • 獨享調度資源組:通過運維助手安裝第三方包,詳情請參見運維助手

使用限制

  • 僅支持使用Serverless資源組(推薦)或獨享調度資源組運行該類型任務。

  • DataLake或自定義集群若要在DataWorks管理元數據,需先在集群側配置EMR-HOOK。若未配置,則無法在DataWorks中實時展示元數據、生成審計日志、展示血緣關系、開展EMR相關治理任務。配置EMR-HOOK,詳情請參見配置Hive的EMR-HOOK。

  • spark-submit方式提交的任務,deploy-mode推薦使用cluster模式,不建議使用client模式。

  • EMR Shell節點是運行在DataWorks調度資源組,而非EMR集群的,您可以使用一些EMR組件命令,但無法直接讀取EMR上資源情況。如果要引用資源,則需要先上傳DataWorks資源。詳情請參見上傳EMR資源

步驟一:創建EMR Shell節點

  1. 進入數據開發頁面。

    登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數據開發與治理 > 數據開發,在下拉框中選擇對應工作空間后單擊進入數據開發。

  2. 新建EMR Shell節點。

    1. 右鍵單擊目標業務流程,選擇新建節點 > EMR > EMR Shell。

      說明

      您也可以鼠標懸停至新建,選擇新建節點 > EMR > EMR Shell。

    2. 新建節點對話框中,輸入名稱,并選擇引擎實例、節點類型路徑。單擊確認,進入EMR Shell節點編輯頁面。

      說明

      節點名稱支持大小寫字母、中文、數字、下劃線(_)和小數點(.)。

步驟二:開發EMR Shell任務

在EMR Shell節點編輯頁面雙擊已創建的節點,您可以根據不同場景需求選擇適合您的操作方案:

方案一:先上傳資源后引用EMR JAR資源

DataWorks也支持您從本地先上傳資源至DataStudio,再引用資源。如果您使用的是DataLake(新版數據湖)集群,則可通過如下步驟引用EMR JAR資源,若EMR Shell節點依賴的資源較大,則無法通過DataWorks頁面上傳。您可將資源存放至HDFS上,然后在代碼中進行引用。

  1. 創建EMR JAR資源。

    創建EMR JAR資源,詳情請參見創建和使用EMR資源。示例將本文《準備初始數據及JAR資源包》中生成的JAR包存儲在JAR資源的存放目錄emr/jars下。首次使用需要選擇一鍵授權,然后單擊點擊上傳按鈕,上傳JAR資源。新建JAR資源

  2. 引用EMR JAR資源。

    1. 打開創建的EMR Shell節點,停留在代碼編輯頁面。

    2. EMR > 資源節點下,找到待引用資源(示例為onaliyun_mr_wordcount-1.0-SNAPSHOT.jar),右鍵選擇引用資源引用資源

    3. 選擇引用后,當EMR Shell節點的代碼編輯頁面顯示##@resource_reference{""}格式的語句,表明已成功引用代碼資源。此時,需要執行下述命令。如下命令涉及的資源包、Bucket名稱、路徑信息等為本文示例的內容,使用時,您需要替換為實際使用的信息。

      ##@resource_reference{"onaliyun_mr_wordcount-1.0-SNAPSHOT.jar"}
      onaliyun_mr_wordcount-1.0-SNAPSHOT.jar cn.apache.hadoop.onaliyun.examples.EmrWordCount oss://onaliyun-bucket-2/emr/datas/wordcount02/inputs oss://onaliyun-bucket-2/emr/datas/wordcount02/outputs
      說明

      EMR Shell節點編輯代碼時不支持注釋語句。

方案二:直接引用OSS資源

當前節點可通過OSS REF的方式直接引用OSS資源,在運行EMR節點時,DataWorks會自動加載代碼中的OSS資源至本地使用。該方式常用于“需要在EMR任務中運行JAR依賴”、“EMR任務需依賴腳本”等場景。引用格式如下:

ossref://{endpoint}/{bucket}/{object}
  • endpoint:OSS對外服務的訪問域名。Endpoint為空時,僅支持使用與當前訪問的EMR集群同地域的OSS,即OSS的Bucket需要與EMR集群所在地域相同。

  • Bucket:OSS用于存儲對象的容器,每一個Bucket有唯一的名稱,登錄OSS管理控制臺,可查看當前登錄賬號下所有Bucket。

  • object:存儲在Bucket中的一個具體的對象(文件名稱或路徑)。

使用示例

  1. 在OSS Bucket中上傳示例文件。本文以emr_shell_test.sh為例,示例文件內容如下:

    #!/bin/sh
    echo "Hello, DataWorks!"
  2. 在EMR Shell節點中直接引用OSS資源。

    sh ossref://oss-cn-shanghai.aliyuncs.com/test-oss-of-dataworks/emr_shell_test.sh
    說明

    oss-cn-shanghai.aliyuncs.comendpointtest-oss-of-dataworksBucket名稱,emr_shell_test.shobject文件名。

    運行結果如下,即可看到emr_shell_test.sh文件的輸出結果:

    ...
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process ready to execute. command: sh ./emr_shell_test.sh
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Command state update to RUNNING
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process start to execute...
    Process Output>>> Hello, DataWorks!
    ...

配置EMR Shell調度參數

在SQL編輯區域開發任務代碼,您可在代碼中使用${變量名}的方式定義變量,并在節點編輯頁面右側導航欄的調度配置>調度參數中為該變量賦值。實現調度場景下代碼的動態傳參,調度參數使用詳情,請參考調度參數支持的格式,示例如下。

DD=`date`;
echo "hello world, $DD"
##可以結合調度參數使用
echo ${var};
說明

如果您使用的是DataLake(新版數據湖)集群,則還支持如下命令行。

  • Shell命令:/usr/bin/bin下的Shell命令。例如,ls、echo等。

  • Yarn組件:hadoop、hdfs、yarn。

  • Spark組件:spark-submit。

  • Sqoop組件:sqoop-export、sqoop-import、sqoop-import-all-tables等。

使用該組件時,您需要在RDS白名單中添加資源組的IP信息。

執行SQL任務

  1. 在工具欄單擊高級運行圖標,在參數對話框選擇已創建的調度資源組,單擊運行。

    說明
    • 訪問公共網絡或VPC網絡環境的數據源需要使用與數據源測試連通性成功的調度資源組。詳情請參見網絡連通方案

    • 如果您后續執行任務需要修改使用的資源組,您可單擊帶參運行高級運行圖標,選擇需要更換的調度資源組。

  2. 單擊保存圖標,保存編寫的SQL語句。

  3. (可選)冒煙測試。

    如果您希望在開發環境進行冒煙測試,可在執行節點提交或節點提交后執行冒煙測試,操作詳情請參見執行冒煙測試。

步驟三:配置節點調度

如您需要周期性執行創建的節點任務,可單擊節點編輯頁面右側的調度配置,根據業務需求配置該節點任務的調度信息。配置詳情請參見任務調度屬性配置概述

說明

您需要設置節點的重跑屬性依賴的上游節點,才可以提交節點。

步驟四:發布節點任務

節點任務配置完成后,需執行提交發布操作,提交發布后節點即會根據調度配置內容進行周期性運行。

  1. 單擊工具欄中的保存圖標,保存節點。

  2. 單擊工具欄中的提交圖標,提交節點任務。

    提交時需在提交對話框中輸入變更描述,并根據需要選擇是否在節點提交后執行代碼評審。

    說明
    • 您需設置節點的重跑屬性依賴的上游節點,才可提交節點。

    • 代碼評審可對任務的代碼質量進行把控,防止由于任務代碼有誤,未經審核直接發布上線后出現任務報錯。如進行代碼評審,則提交的節點代碼必須通過評審人員的審核才可發布,詳情請參見代碼評審

如您使用的是標準模式的工作空間,任務提交成功后,需單擊節點編輯頁面右上方的發布,將該任務發布至生產環境執行,操作請參見發布任務

后續步驟

任務提交發布后,會基于節點的配置周期性運行,您可單擊節點編輯界面右上角的運維,進入運維中心查看周期任務的調度運行情況。詳情請參見查看并管理周期任務

相關文檔

了解如何在EMR Shell節點使用Python 2或Python 3命令運行Python腳本:詳情請參見Shell類型節點運行Python腳本。

了解如何在EMR Shell節點使用OSSUtils工具:詳情請參見Shell類型節點使用OSSUtils工具。