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

使用Spark History Server查看Spark作業(yè)信息

Spark應(yīng)用程序在運行期間會向外提供Web UI服務(wù)用于可視化作業(yè)信息,例如Stage和Task的詳細信息、內(nèi)存使用情況等。為了能夠在作業(yè)執(zhí)行結(jié)束后查看作業(yè)執(zhí)行情況,您需要將Spark作業(yè)日志持久化到某一后端存儲中,并通過ack-spark-history-server組件去解析該日志并渲染成Web UI對外提供服務(wù)。本文將介紹如何在ACK集群中使用Spark History Server查看Spark作業(yè)的運行情況。

前提條件

步驟一:部署ack-spark-history-server組件

  1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇市場 > 應(yīng)用市場

  2. 應(yīng)用市場頁面,單擊應(yīng)用目錄頁簽,搜索并選中ack-spark-history-server

  3. ack-spark-history-server頁面,單擊一鍵部署

  4. 創(chuàng)建面板中,選擇集群和命名空間,然后單擊下一步

  5. 參數(shù)配置頁面,設(shè)置相應(yīng)參數(shù),然后單擊確定

    以下是關(guān)于日志存儲、環(huán)境變量和Service配置參數(shù)的說明。您可以根據(jù)需求自定義參數(shù)配置。您可以在ack-spark-history-server頁面中的配置項查看全量配置項說明。

    說明

    在部署ack-spark-history-server組件時需要指定一個日志存儲后端,例如阿里云OSS、PVC或HDFS等。

    • (必選)配置日志存儲后端

      在配置日志存儲后端時,您可以選擇阿里云OSS、PVC或HDFS等選項。以下為各存儲后端的配置說明。

      使用OSS作為存儲后端

      當使用OSS作為日志存儲后端時,需要設(shè)置如下參數(shù)。

      重要

      Spark作業(yè)在寫入日志時,需要等待作業(yè)執(zhí)行結(jié)束后才可以上傳,因此無法實時查看正在運行的作業(yè)日志,只能查看已完成作業(yè)的日志。

      參數(shù)

      描述

      示例值

      spark.history.fs.logDirectory

      日志目錄的URL。確保在部署組件之前,日志目錄已創(chuàng)建,例如spark/spark-events。關(guān)于如何創(chuàng)建目錄請參見管理目錄

      oss://<Bucket name>/spark/spark-events

      storage.oss.enable

      啟用阿里云對象存儲服務(wù)(OSS、OSS-HDFS)作為日志存儲后端。

      true

      storage.oss.endpoint

      阿里云OSS訪問端點。

      oss-cn-beijing-internal.aliyuncs.com

      storage.oss.existingSecret

      (推薦)已擁有讀取OSS訪問憑證的Secret名稱。關(guān)于如何創(chuàng)建OSS訪問憑證的Secret YAML,請參見OSS訪問憑證Secret YAML示例

      spark-oss-secret

      storage.oss.createSecret

      如果沒有指定已有的Secret,將自動創(chuàng)建一個用于存儲OSS訪問憑證的Secret。

      不涉及。

      storage.oss.createSecret.accessKeyId

      阿里云AccessKey ID。

      LTAIXXXXXXXXXXXXXXCuMnk

      storage.oss.createSecret.accessKeySecret

      阿里云AccessKey Secret。

      ViuXXXXXXXXXXXXXv15yVKkGj0J

      OSS訪問憑證Secret YAML示例

      確保Secret中包含OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET兩個字段。

      1. 使用以下內(nèi)容創(chuàng)建spark-oss-secret.yaml。

        apiVersion: v1
        kind: Secret
        metadata:
          name: spark-oss-secret
          namespace: spark-operator
        stringData:
          OSS_ACCESS_KEY_ID: ""       # 阿里云AccessKey ID。
          OSS_ACCESS_KEY_SECRET: ""   # 阿里云AccessKey Secret。
      2. 執(zhí)行以下命令以創(chuàng)建OSS訪問憑證Secret。

        kubectl apply -f spark-oss-secret.yaml

      使用PVC作為存儲后端

      使用PVC作為日志存儲后端時,需要設(shè)置如下參數(shù)。

      參數(shù)

      描述

      示例值

      spark.history.fs.logDirectory

      日志目錄的URL。

      file:///mnt/spark/spark-events

      storage.pvc.enable

      啟用PVC作為日志存儲后端。

      true

      storage.pvc.name

      已經(jīng)存在的PVC名稱。確保在ack-spark-history-server需要的命名空間中提前創(chuàng)建好PV和PVC,并成功綁定。關(guān)于如何創(chuàng)建并綁定PVC請參見存儲-CSI

      "<PVC name>"

      storage.pvc.mountPath

      PVC在容器中的掛載路徑。

      "/mnt"

      使用HDFS作為存儲后端

      使用HDFS作為存儲后端時,需要設(shè)置如下參數(shù)。

      參數(shù)

      描述

      示例值

      spark.history.fs.logDirectory

      日志目錄的URL。

      hdfs://namenode:port/spark/spark-events

    • (可選)配置Service類型和端口

      默認會創(chuàng)建一個Service資源用于暴露History Server的Web UI,可以通過service.typeservice.port參數(shù)配置Service的類型和端口號。

      參數(shù)

      描述

      默認值

      service.type

      選擇Service類型。取值:

      • ClusterIP

      • NodePort

      • LoadBalancer

      ClusterIP

      service.port

      Web UI訪問端口號。

      18080

    • (可選)配置環(huán)境變量

      您可以在env參數(shù)中添加環(huán)境變量,對History Server進行配置。

      環(huán)境變量

      描述

      默認值

      SPARK_DAEMON_MEMORY

      分配給History Server的內(nèi)存大小。

      1g

      SPARK_DAEMON_JAVA_OPTS

      History Server JVM配置項。

      ""

      SPARK_DAEMON_CLASSPATH

      History Server類路徑。

      ""

      SPARK_PUBLIC_DNS

      History Server的外網(wǎng)地址。如果沒有設(shè)置歷史服務(wù)器的外網(wǎng)地址,應(yīng)用歷史將默認使用內(nèi)部地址,這可能導(dǎo)致鏈接失效。

      ""

      SPARK_HISTORY_OPTS

      一組spark.history.*配置項。

      ""

      您可以在sparkConf參數(shù)中添加配置,來設(shè)置History Server。常用配置項如下。

      屬性名稱

      描述

      默認值

      spark.history.fs.update.interval

      檢測日志更新的時間間隔。

      10s

      spark.history.fs.retainedApplications

      緩存UI數(shù)據(jù)的應(yīng)用最大數(shù)量。

      50

      spark.history.ui.port

      History Server端口號。

      18080

      spark.history.fs.cleaner.enabled

      是否周期性地清理事件日志。

      false

      spark.history.fs.cleaner.interval

      spark.history.fs.cleaner.enabled=true 時,指定清理事件日志的時間間隔。

      1d

      spark.history.fs.cleaner.maxAge

      spark.history.fs.cleaner.enabled=true時,清理日志文件時會刪除存活時間超過該閾值的日志。

      7d

      spark.history.fs.cleaner.maxNum

      spark.history.fs.cleaner.enabled=true時,設(shè)置保留的日志文件數(shù)量的最大值,超過該閾值的日志文件將在清理觸發(fā)時被刪除。

      Int.MaxValue

      spark.history.fs.driverlog.cleaner.enabled

      是否周期性地清理Driver事件日志。

      spark.history.fs.cleaner.enabled

      spark.history.fs.driverlog.cleaner.interval

      spark.history.fs.driverlog.cleaner.enabled=true 時,指定清理Driver事件日志的時間間隔。

      spark.history.fs.cleaner.interval

      spark.history.fs.driverlog.cleaner.maxAge

      spark.history.fs.driverlog.cleaner.enabled=true時,清理Driver事件日志時會刪除存活時間超過該閾值的日志。

      spark.history.fs.cleaner.maxAge

      spark.history.fs.numReplayThreads

      處理日志文件時創(chuàng)建的線程數(shù)量。

      25%的可用CPU核數(shù)。

      spark.history.store.maxDiskUsage

      應(yīng)用歷史緩存所能使用的磁盤大小上限。

      10g

步驟二:訪問Spark History Server Web UI

在默認配置中,Service的類型為ClusterIP。訪問Spark History Server的Web UI,需要將其服務(wù)轉(zhuǎn)發(fā)到本地的18080端口。您可以參見以下方式進行配置。如果您需要使用已有的負載均衡實例進行訪問,請參見通過使用已有負載均衡的服務(wù)暴露應(yīng)用

重要

通過kubectl port-forward命令建立的端口轉(zhuǎn)發(fā)僅適用于測試環(huán)境下的快速驗證,不適合在生產(chǎn)環(huán)境中使用,使用時請注意安全風(fēng)險。

  1. 執(zhí)行以下命令,配置本地端口轉(zhuǎn)發(fā)。

    RELEASE_NAME=spark-history-server
    RELEASE_NAMESPACE=spark-operator
    
    SERVICE_NAME=${RELEASE_NAME}-service
    SERVICE_PORT=$(kubectl get service ${SERVICE_NAME} --namespace ${RELEASE_NAMESPACE} -o jsonpath="{.spec.ports[0].port}")
    
    echo "Now you can go to http://127.0.0.1:18080 to visit spark history server."
    kubectl plort-forward --namespace ${RELEASE_NAMESPACE} services/${SERVICE_NAME} 18080:${SERVICE_PORT}

    預(yù)期輸出:

    Now you can go to http://127.0.0.1:18080 to visit spark history server.
    Forwarding from 127.0.0.1:18080 -> 18080
    Forwarding from [::1]:18080 -> 18080
  2. 瀏覽器中訪問http://127.0.0.1:18080,查看Spark History Server Web UI。

    image

步驟三:在Spark作業(yè)啟用日志記錄

部署ack-spark-history-server組件后,還需在Spark作業(yè)中啟用事件日志記錄功能。請配置以下兩個參數(shù),以啟用并存儲Spark作業(yè)的事件日志。

參數(shù)

描述

示例值

spark.eventLog.enabled

啟用事件日志記錄。取值:

  • true

  • false

true

spark.eventLog.dir

事件日志存儲路徑。取值:

  • oss://<Bucket name>/spark/spark-events(OSS路徑)

  • hdfs://namenode:port/spark/spark-events(HDFS路徑)

  • file:///tmp/spark/spark-events(本地路徑)

oss://<Bucket name>/spark/spark-events

示例場景:在Spark作業(yè)中配置OSS日志記錄

以下是將OSS作為存儲后端進行日志記錄配置的詳細步驟。

  1. 構(gòu)建Spark容器鏡像

    由于社區(qū)的Spark容器鏡像不包含訪問OSS所需的相關(guān)JAR包,您需要自行構(gòu)建Spark容器鏡像,將Hadoop OSS SDK的相關(guān)JAR包添加到鏡像中。以下是一個Dockerfile示例。關(guān)于容器鏡像服務(wù)構(gòu)建鏡像請參見使用企業(yè)版實例構(gòu)建鏡像。根據(jù)Dockerfile構(gòu)建鏡像并推送至您自己的鏡像倉庫,注意調(diào)整Spark對應(yīng)的Hadoop版本的依賴JAR包。

    ARG SPARK_IMAGE=registry-cn-hangzhou.ack.aliyuncs.com/dev/spark:3.5.2
    
    FROM ${SPARK_IMAGE}
    
    # Add dependency for Hadoop Aliyun OSS support
    ADD --chmod=644 https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aliyun/3.3.4/hadoop-aliyun-3.3.4.jar ${SPARK_HOME}/jars
    ADD --chmod=644 https://repo1.maven.org/maven2/com/aliyun/oss/aliyun-sdk-oss/3.17.4/aliyun-sdk-oss-3.17.4.jar ${SPARK_HOME}/jars
    ADD --chmod=644 https://repo1.maven.org/maven2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar ${SPARK_HOME}/jars
  2. 創(chuàng)建Secret

    在Spark作業(yè)的命名空間中,您需要創(chuàng)建一個Secret來存儲OSS訪問憑證。

    1. 創(chuàng)建如下Secret清單文件spark-oss-secret.yaml,用于存儲OSS訪問憑據(jù)。

      apiVersion: v1
      kind: Secret
      metadata:
        name: spark-oss-secret
        namespace: default
      stringData:
        # 阿里云AccessKey ID
        OSS_ACCESS_KEY_ID: ""
        # 阿里云AccessKey Secret
        OSS_ACCESS_KEY_SECRET: ""
    2. 執(zhí)行以下命令,創(chuàng)建一個Secret資源。

      kubectl apply -f spark-oss-secret.yaml

      預(yù)期輸出:

      secret/spark-oss-secret created
  3. 提交Spark作業(yè)

    以下是一個SparkApplication示例,啟用了事件日志記錄功能。您需要根據(jù)具體情況修改以下參數(shù):

    參數(shù)

    描述

    示例值

    image

    已構(gòu)建Spark容器鏡像的鏡像地址。

    registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/spark:3.5.2-oss

    fs.oss.endpoint

    阿里云OSS訪問端點。

    oss-cn-beijing-internal.aliyuncs.com

    spark.eventLog.dir

    日志存放路徑。確保指定的日志存放路徑已提前創(chuàng)建,否則作業(yè)將在運行時出現(xiàn)錯誤。

    oss://<Bucket name>/spark/spark-events

    1. 創(chuàng)建如下SparkApplication清單文件,并保存為spark-pi.yaml

      apiVersion: sparkoperator.k8s.io/v1beta2
      kind: SparkApplication
      metadata:
        name: spark-pi-oss
        namespace: default
      spec:
        type: Scala
        mode: cluster
        image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/spark:3.5.2-oss
        mainApplicationFile: local:///opt/spark/examples/jars/spark-examples_2.12-3.5.2.jar
        mainClass: org.apache.spark.examples.SparkPi
        sparkVersion: 3.5.2
        hadoopConf:
          fs.AbstractFileSystem.oss.impl: org.apache.hadoop.fs.aliyun.oss.OSS
          fs.oss.impl: org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem
          # OSS訪問端點
          fs.oss.endpoint: oss-cn-beijing-internal.aliyuncs.com
          fs.oss.credentials.provider: com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider
        sparkConf:
          spark.eventLog.enabled: "true"
          # 日志存放路徑
          spark.eventLog.dir: oss://<Bucket name>/spark/spark-events
        driver:
          cores: 1
          coreLimit: 1200m
          memory: 512m
          serviceAccount: spark-operator-spark
          envFrom:
          - secretRef:
              name: spark-oss-secret
        executor:
          instances: 1
          cores: 1
          coreLimit: 1200m
          memory: 512m
          envFrom:
          - secretRef:
              name: spark-oss-secret
        restartPolicy:
          type: Never
    2. 執(zhí)行以下命令,提交Spark作業(yè)。在完成鏡像制作和SECRET創(chuàng)建后,您可以在瀏覽器中訪問http://127.0.0.1:18080查看Spark作業(yè)情況。

      kubectl apply -f spark-pi.yaml

      預(yù)期輸出:

      sparkapplication.sparkoperator.k8s.io/spark-pi created