Tous les produits
Search
Centre de documentation

E-MapReduce:Gérer les jobs avec kubectl

Dernière mise à jour :Aug 20, 2026

Cette rubrique explique comment gérer les jobs Spark à l'aide de kubectl.

Prérequis

Créez un cluster Spark dans la console E-MapReduce on ACK. Pour plus d'informations, consultez la section Prise en main.

Procédure

  1. Connectez-vous au cluster Kubernetes avec kubectl. Pour plus d'informations, consultez la section Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster.

    Vous pouvez également vous connecter au cluster Kubernetes via des API. Pour plus d'informations, consultez la section Utiliser l'API Kubernetes.

  2. Exécutez les commandes suivantes pour gérer vos jobs.

    • Consultez l'état d'un job en exécutant la commande suivante.

      kubectl describe SparkApplication <job name> --namespace <cluster namespace>

      La commande renvoie un résultat similaire à l'exemple ci-dessous.

      Name:         spark-pi-simple
      Namespace:    c-48e779e0d9ad****
      Labels:       <none>
      Annotations:  <none>
      API Version:  sparkoperator.k8s.io/v1beta2
      Kind:         SparkApplication
      Metadata:
        Creation Timestamp:  2021-07-22T06:25:33Z
        Generation:          1
        Resource Version:  7503740
        UID:               930874ad-bb17-47f1-a556-55118c1d****
      Spec:
        Arguments:
          1000
        Driver:
          Core Limit:  1000m
          Cores:       1
          Memory:      4g
        Executor:
          Core Limit:           1000m
          Cores:                1
          Instances:            1
          Memory:               8g
          Memory Overhead:      1g
        Image:                  registry-vpc.cn-hangzhou.aliyuncs.com/emr/spark:emr-2.4.5-1.0.0
        Main Application File:  local:///opt/spark/examples/target/scala-2.11/jars/spark-examples_2.11-2.4.5.jar
        Main Class:             org.apache.spark.examples.SparkPi
        Spark Version:          2.4.5
        Type:                   Scala
      Status:
        Application State:
          State:  RUNNING
        Driver Info:
          Pod Name:                spark-pi-simple-driver
          Web UI Address:          172.16.230.240:4040
          Web UI Ingress Address:  spark-pi-simple.c-48e779e0d9ad4bfd.c7f6b768c34764c27ab740bdb1fc2a3ff.cn-hangzhou.alicontainer.com
          Web UI Ingress Name:     spark-pi-simple-ui-ingress
          Web UI Port:             4040
          Web UI Service Name:     spark-pi-simple-ui-svc
        Execution Attempts:        1
        Executor State:
          spark-pi-1626935142670-exec-1:  RUNNING
        Last Submission Attempt Time:     2021-07-22T06:25:33Z
        Spark Application Id:             spark-15b44f956ecc40b1ae59a27ca18d****
        Submission Attempts:              1
        Submission ID:                    d71f30e2-9bf8-4da1-8412-b585fd45****
        Termination Time:                 <nil>
      Events:
        Type    Reason                     Age   From            Message
        ----    ------                     ----  ----            -------
        Normal  SparkApplicationAdded      17s   spark-operator  SparkApplication spark-pi-simple was added, enqueuing it for submission
        Normal  SparkApplicationSubmitted  14s   spark-operator  SparkApplication spark-pi-simple was submitted successfully
        Normal  SparkDriverRunning         13s   spark-operator  Driver spark-pi-simple-driver is running
        Normal  SparkExecutorPending       7s    spark-operator  Executor spark-pi-1626935142670-exec-1 is pending
        Normal  SparkExecutorRunning       6s    spark-operator  Executor spark-pi-1626935142670-exec-1 is running

      Dans la commande, remplacez <cluster namespace> par le namespace de votre cluster. Vous trouverez ce namespace sur la page Cluster Details de la console E-MapReduce on ACK.

      Dans la commande, remplacez <job name> par le nom de votre job. Vous trouverez ce nom de job sur la page Job Details de la console E-MapReduce on ACK.

    • Arrêtez et supprimez un job en exécutant la commande suivante.

      kubectl delete SparkApplication <job name> -n <cluster namespace>

      La commande renvoie le résultat suivant.

      sparkapplication.sparkoperator.k8s.io "spark-pi-simple" deleted
    • Consultez les journaux d'un job en exécutant la commande suivante.

      kubectl logs <job-name-driver> -n <cluster namespace>
      Remarque

      Par exemple, si le nom du job est spark-pi-simple et que le namespace du cluster est c-d2232227b951****, la commande est kubectl logs spark-pi-simple-driver -n c-d2232227b951****.

      La commande renvoie un résultat similaire à l'exemple ci-dessous.

      ......
      Pi is roughly 3.141488791414888
      21/07/22 14:37:57 INFO SparkContext: Successfully stopped SparkContext
      21/07/22 14:37:57 INFO ShutdownHookManager: Shutdown hook called
      21/07/22 14:37:57 INFO ShutdownHookManager: Deleting directory /var/data/spark-b6a43b55-a354-44d7-ae5e-45b8b1493edb/spark-56aae0d1-37b9-4a7d-9c99-4e4ca12deb4b
      21/07/22 14:37:57 INFO ShutdownHookManager: Deleting directory /tmp/spark-e2500491-6ed7-48d7-b94e-a9ebeb899320