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

使用ECI彈性調度Spark作業

使用阿里云彈性容器實例(Elastic Container Instance)調度Spark作業,可以不受限于ACK集群的節點計算容量,靈活動態地按需創建Pod(容器組),有效地降低計算成本。本文為您介紹如何使用ECI彈性調度Spark作業。

背景信息

如果您需要使用更多ECI的高級功能,可以通過設置更多的Annotation(注解)對ECI按需進行參數配置,詳情請參見ECI Pod Annotation。

前提條件

操作步驟

  1. 在ACK集群中安裝ECI所需的虛擬節點,詳情請參見步驟一:在ACK集群中部署ack-virtual-node組件。

  2. 在EMR on ACK上提交Spark作業時,可以通過設置Label(標簽)、Annotation或者Spark Conf來實現ECI調度Spark作業。

    提交Spark作業詳情,請參見提交Spark作業

    說明

    本文示例中版本以Spark 3.1.1(EMR-5.2.1-ack)為例,其他版本時請修改sparkVersion和mainApplicationFile的配置。示例中的參數描述,請參見spark-on-k8s-operator

    • 方式一:配置Pod Label。

      設置參數alibabacloud.com/eci為true,將指定Pod調度到ECI上運行,參考示例如下。

      apiVersion: "sparkoperator.k8s.io/v1beta2"
      kind: SparkApplication
      metadata:
        name: spark-pi-eci
      spec:
        type: Scala
        sparkVersion: 3.1.1
        mainClass: org.apache.spark.examples.SparkPi
        mainApplicationFile: "local:////opt/spark/examples/jars/spark-examples_2.12-3.1.1.jar"
        arguments:
          - "1000000"
        driver:
          cores: 2
          coreLimit: 2000m
          memory: 4g
        executor:
          cores: 4
          coreLimit: 4000m
          memory: 8g
          instances: 10
          # 通過配置Label,所有Executor使用ECI。
          labels:
            alibabacloud.com/eci: "true"
          #(可選)配置ECI鏡像緩存,提升性能
          annotations:
            k8s.aliyun.com/eci-image-cache: "true" 
    • 方式二:配置Pod Annotation。

      設置參數alibabacloud.com/burst-resource為eci,將指定Pod調度到ECI上運行,Annotation取值包含兩種類型:

      • eci:當集群普通節點的資源不足時,使用ECI。

      • eci_only:只使用ECI。

      參考示例如下。

      apiVersion: "sparkoperator.k8s.io/v1beta2"
      kind: SparkApplication
      metadata:
        name: spark-pi-eci
      spec:
        type: Scala
        sparkVersion: 3.1.1
        mainClass: org.apache.spark.examples.SparkPi
        mainApplicationFile: "local:////opt/spark/examples/jars/spark-examples_2.12-3.1.1.jar"
        arguments:
          - "1000000"
        driver:
          cores: 2
          coreLimit: 2000m
          memory: 4g
        executor:
          cores: 4
          coreLimit: 4000m
          memory: 8g
          instances: 10
          # 通過配置Annotation,當Executor節點資源不足時使用ECI。
          annotations:
            alibabacloud.com/burst-resource: "eci"
            #(可選)配置ECI鏡像緩存,提升性能
            k8s.aliyun.com/eci-image-cache: "true" 
    • 方式三:配置Spark Conf。

      您也可以通過增加Spark Conf來配置Pod Annotation,從而實現ECI調度。Annotation取值與方式二:配置Pod Annotation相同。

      1. 進入spark-defaults.conf頁簽。

        1. 登錄EMR on ACK。

        2. 在EMR on ACK頁面,單擊目標集群操作列的配置。

        3. 配置頁簽,單擊spark-defaults.conf

      2. 配置Spark集群以啟用ECI。

        1. 單擊上方的新增配置項。

        2. 新增配置項對話框中,添加以下配置。

          參數

          描述

          spark.kubernetes.driver.annotation.alibabacloud.com/burst-resource

          Spark Driver是否使用ECI,取值為eci或eci_only。

          spark.kubernetes.driver.annotation.k8s.aliyun.com/eci-image-cache

          Spark Driver是否使用ECI鏡像緩存,建議填寫為true。

          spark.kubernetes.executor.annotation.alibabacloud.com/burst-resource

          Spark Executor是否使用ECI,取值為eci或eci_only

          spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-image-cache

          Spark Executor是否使用ECI鏡像緩存,建議填寫為true。

          spark.kubernetes.driver.annotation.k8s.aliyun.com/eci-ram-role-name

          用于指定創建Spark Driver Pod時應綁定的RAM角色名。填寫為AliyunECSInstanceForEMRRole。

        3. 單擊確定

        4. 在彈出的對話框中,輸入執行原因,單擊保存。

      3. 生效配置。

        1. 單擊部署客戶端配置

        2. 在彈出的對話框中,輸入執行原因,單擊確定

        3. 確認對話框中,單擊確定

  3. 可選:如果您的作業需要讀寫OSS數據,或者使用了DLF元數據,訪問云服務時還需要額外授予ECI權限。授權方式如下:

    • 方式一:通過角色授權ECI以實現免密訪問。

      1. RAM控制臺,創建可信實體為阿里云服務的RAM角色,詳情請參見創建普通服務角色。

        說明

        受信服務選擇為云服務器。

      2. 為創建的RAM角色授權,權限策略為AliyunOSSFullAccess和AliyunDLFFullAccess。

        為RAM角色授權詳情,請參見為RAM角色授權。

      3. 在Spark作業中,按照如下方式添加Annotations,指定創建好的RAM角色即可。

        annotations:
          k8s.aliyun.com/eci-ram-role-name: <創建的角色名>
    • 方式二:配置OSS AccessKey或DLF AccessKey。

      • 如果您的作業需要讀寫OSS數據,則需要在hadoopConf中額外增加AccessKey的配置。配置信息如下。

        hadoopConf:
          fs.jfs.cache.oss.accessKeyId: <yourAccessKeyId>
          fs.jfs.cache.oss.accessKeySecret: <yourAccessKeySecret>
      • 如果您的作業開啟了DLF,則需要在hadoopConf中額外增加AccessKey的配置。配置信息如下。

        hadoopConf:
          dlf.catalog.accessKeyId: <yourAccessKeyId>
          dlf.catalog.accessKeySecret: <yourAccessKeySecret>
          dlf.catalog.akMode: "MANUAL"