全部產品
Search
文件中心

AnalyticDB:Azkaban調度Spark

更新時間:Apr 11, 2025

Azkaban是一個批量工作流程工作調度器,可以構建、執行和管理組件含複雜依賴關係的工作流程。您可以在Azkaban Web介面調度AnalyticDB for MySQL的Spark作業。

前提條件

調度Spark SQL作業

AnalyticDB for MySQL支援使用批處理互動式兩種方法執行Spark SQL。選擇的執行方式不同,調度的操作步驟也有所不同。詳細步驟如下:

批處理

  1. 安裝Spark-Submit命令列工具配置相關參數

    說明

    您只需要配置keyIdsecretIdregionIdclusterIdrgName這些必填參數。

  2. 編寫工作流程檔案,並將其所在的檔案夾壓縮成ZIP格式。

    nodes:
      - name: SparkPi
        type: command
        config:
          command: /<your path>/adb-spark-toolkit-submit/bin/spark-submit 
                    --class com.aliyun.adb.spark.sql.OfflineSqlTemplate 
                    local:///opt/spark/jars/offline-sql.jar 
                    "show databases" 
                    "select 100"
        dependsOn:
          - jobA
          - jobB
    
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    
      - name: jobB
        type: command
        config:
          command: pwd
    重要
    • <your path>需替換為Spark-Submit命令列工具的實際安裝路徑。

    • command節點的命令輸入請不要使用續行符(\)。

  3. 建立專案並上傳步驟2壓縮的工作流程檔案。

    1. 訪問Azkaban Web介面,在頂部導覽列單擊Project

    2. 單擊頁面右上方的Create Project

    3. 在彈出的Create Project對話方塊中配置NameDescription參數。

    4. 單擊頁面右上方的Upload

    5. 在彈出的Upload Project Files對話方塊中上傳工作流程檔案,單擊Upload

  4. 運行工作流程。

    1. Project頁面,單擊Flows頁簽。

    2. 單擊Execute Flow

    3. 單擊Execute

    4. 在彈出的Flow submitted對話方塊中,單擊Continue

  5. 查看工作流程詳細資料。

    1. 在頂部導覽列單擊Executing

    2. 單擊Recently Finished頁簽。

    3. 單擊Execution Id,並單擊Job List頁簽查看每一個Job的執行詳情。

    4. 單擊Log查看Job的日誌資訊。

互動式

  1. 擷取Spark Interactive型資源群組的串連地址。

    1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在企業版、基礎版或湖倉版頁簽下,單擊目的地組群ID。

    2. 在左側導覽列,單擊集群管理 > 資源管理,單擊資源組管理頁簽。

    3. 單擊對應資源群組操作列的詳情,查看內網串連地址和公網串連地址。您可單擊連接埠號碼括弧內的image按鈕,複製串連地址。

      以下兩種情況,您需要單擊公網地址後的申請網路,手動申請公網串連地址。

      • 提交Spark SQL作業的用戶端工具部署在本地。

      • 提交Spark SQL作業的用戶端工具部署在ECS上,且ECSAnalyticDB for MySQL不屬於同一VPC。

  2. 編寫工作流程檔案,並將其所在的檔案夾壓縮成ZIP格式。

    nodes:
      - name: jobB
        type: command
        config:
          command: <path> -u "jdbc:hive2://amv-t4n83e67n7b****sparkwho.ads.aliyuncs.com:10000/adb_demo" -n spark_interactive_prod/spark_user -p "spark_password" -e "show databases;show tables;"
    
        dependsOn:
          - jobA
    
      - name: jobA
        type: command
        config:
          command: <path> -u "jdbc:hive2://amv-t4n83e67n7b****sparkwho.ads.aliyuncs.com:10000/adb_demo" -n spark_interactive_prod/spark_user -p "spark_password" -e "show tables;"

    參數說明:

    參數

    說明

    path

    需替換為Beeline用戶端所在的路徑。例如:/path/to/spark/bin/beeline

    -u

    請填寫步驟1中擷取的串連地址。串連地址中的default需替換為實際的資料庫名,並且需要刪除串連地址中的resource_group=<資源群組名稱>尾碼。

    例如:jdbc:hive2://amv-t4naxpqk****sparkwho.ads.aliyuncs.com:10000/adb_demo

    -n

    AnalyticDB for MySQL的資料庫帳號及資源群組名稱。格式為資源群組名稱/資料庫帳號名稱

    例如:本文樣本資源群組名稱為spark_interactive_prod,資料庫帳號名稱為spark_user,此處填寫為spark_interactive_prod/spark_user

    -p

    AnalyticDB for MySQL資料庫帳號的密碼。

    -e

    業務具體的SQL語句。多條SQL使用英文分號(;)分隔。

  3. 建立專案並上傳步驟1壓縮的工作流程檔案。

    1. 訪問Azkaban Web介面,在頂部導覽列單擊Project

    2. 單擊頁面右上方的Create Project

    3. 在彈出的Create Project對話方塊中配置NameDescription參數。

    4. 單擊頁面右上方的Upload

    5. 在彈出的Upload Project Files對話方塊中上傳工作流程檔案,單擊Upload

  4. 運行工作流程。

    1. Project頁面,單擊Flows頁簽。

    2. 單擊Execute Flow

    3. 單擊Execute

    4. 在彈出的Flow submitted對話方塊中,單擊Continue

  5. 查看工作流程詳細資料。

    1. 在頂部導覽列單擊Executing

    2. 單擊Recently Finished頁簽。

    3. 單擊Execution Id,並單擊Job List頁簽查看每一個Job的執行詳情。

    4. 單擊Log查看Job的日誌資訊。

調度Spark Jar作業

  1. 安裝Spark-Submit命令列工具配置相關參數

    說明

    您只需要配置keyIdsecretIdregionIdclusterIdrgName這些必填參數。如果您的Spark Jar包在本地,還需要配置ossUploadPath等OSS相關參數。

  2. 編寫工作流程檔案,並將其所在的檔案夾壓縮成ZIP格式。

    nodes:
      - name: SparkPi
        type: command
        config:
          command: /<your path>/adb-spark-toolkit-submit/bin/spark-submit 
                    --class org.apache.spark.examples.SparkPi 
                    --name SparkPi 
                    --conf spark.driver.resourceSpec=medium 
                    --conf spark.executor.instances=2 
                    --conf spark.executor.resourceSpec=medium 
                    local:///tmp/spark-examples.jar 1000
        dependsOn:
          - jobA
          - jobB
    
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    
      - name: jobB
        type: command
        config:
          command: pwd
    重要
    • <your path>需替換為Spark-Submit命令列工具的實際安裝路徑。

    • command節點的命令輸入請不要使用續行符(\)。

  3. 建立專案並上傳步驟2壓縮的工作流程檔案。

    1. 訪問Azkaban Web介面,在頂部導覽列單擊Project

    2. 單擊頁面右上方的Create Project

    3. 在彈出的Create Project對話方塊中配置NameDescription參數。

    4. 單擊頁面右上方的Upload

    5. 在彈出的Upload Project Files對話方塊中上傳工作流程檔案,單擊Upload

  4. 運行工作流程。

    1. Project頁面,單擊Flows頁簽。

    2. 單擊Execute Flow

    3. 單擊Execute

    4. 在彈出的Flow submitted對話方塊中,單擊Continue

  5. 查看工作流程詳細資料。

    1. 在頂部導覽列單擊Executing

    2. 單擊Recently Finished頁簽。

    3. 單擊Execution Id,並單擊Job List頁簽查看每一個Job的執行詳情。

    4. 單擊Log查看Job的日誌資訊。