kubectl を使用して、ACK クラスター上で実行中の E-MapReduce (EMR) の Spark ジョブのステータスを確認したり、ログを表示したり、削除したりできます。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
EMR コンソールの EMR on ACK ページで Spark クラスターが作成済みであること。「クイックスタート」をご参照ください。
kubectl がご利用の Alibaba Cloud Container Service for Kubernetes (ACK) クラスターに接続済みであること。「kubectl を使用した ACK クラスターへの接続」をご参照ください。または、Kubernetes API を介して接続することも可能です。「Kubernetes API の使用」をご参照ください。
ジョブステータスの確認
kubectl describe コマンドを SparkApplication リソースに対して実行し、ジョブの現在の状態を確認します。
コマンドを実行する前に、ジョブ名と名前空間を取得してください。
ジョブ名:EMR コンソールでクラスター詳細ページを開き、Jobs セクションで対象のジョブを見つけます。
名前空間:EMR コンソールでクラスター詳細ページの Cluster Details タブを開きます。
kubectl describe SparkApplication <job-name> --namespace <namespace>出力にはリソースの完全な仕様とステータスが表示されます。Status 項目の下にある Application State フィールドを確認してください。
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ジョブログの表示
ドライバー Pod の名前は <job-name>-driver というパターンに従います。たとえば、ジョブ名が spark-pi-simple の場合、ドライバー Pod 名は spark-pi-simple-driver になります。
kubectl logs <job-name>-driver -n <namespace>出力例を以下に示します。
......
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ジョブの削除
SparkApplication を削除すると、実行中のジョブが停止され、関連するすべてのリソースが削除されます。
kubectl delete SparkApplication <job-name> -n <namespace>削除が完了すると、以下の確認メッセージが表示されます。
sparkapplication.sparkoperator.k8s.io "spark-pi-simple" deleted