すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:kubectl を使用してジョブを管理する

最終更新日:Jan 11, 2025

Alibaba Cloud E-MapReduce(EMR)コンソールで、または kubectl や API を使用して、ジョブを管理できます。このトピックでは、kubectl を使用して Spark ジョブを管理する方法について説明します。

前提条件

新しい EMR コンソールの [EMR on ACK] ページで Spark クラスタが作成されていること。詳細については、「はじめに」をご参照ください。

手順

  1. kubectl を使用して Alibaba Cloud Container Service for Kubernetes(ACK)クラスタに接続します。詳細については、「クラスタの kubeconfig ファイルを取得し、kubectl を使用してクラスタに接続する」をご参照ください。

    API オペレーションを呼び出すことによって、ACK クラスタに接続することもできます。詳細については、「Kubernetes API を使用する」をご参照ください。

  2. ジョブを管理するには、次のコマンドを実行します。

    • ジョブのステータスを表示します。構文:

      kubectl describe SparkApplication <Job name> --namespace <Namespace in which the cluster resides>

      次の情報が返されます。

      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

      ジョブ名 を取得するには、EMR コンソールにログインし、クラスタ詳細ページの [クラスタの詳細] タブに移動します。作成されたジョブは、[ジョブ] セクションに表示されます。

    • ジョブを終了して削除します。構文:

      kubectl delete SparkApplication <Job name> -n <Namespace in which the cluster resides>

      次の情報が返されます。

      sparkapplication.sparkoperator.k8s.io "spark-pi-simple" deleted
    • ジョブのログを表示します。構文:

      kubectl logs <Job name-driver> -n <Namespace in which the cluster resides>
      説明

      ジョブ名が spark-pi-simple で、名前空間が c-d2232227b951**** の場合、実行するコマンドは kubectl logs spark-pi-simple-driver -n c-d2232227b951**** です。

      次の出力に類似した情報が返されます。

      ......
      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