Memantau pekerjaan menggunakan UI web Apache Spark - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memantau pekerjaan menggunakan UI web Apache Spark

Anda dapat menggunakan Apache Spark Web UI untuk memantau dan melakukan debug tugas ETL AWS Glue yang berjalan pada sistem tugas AWS Glue, dan juga aplikasi Spark yang berjalan di titik akhir pengembangan AWS Glue. Spark UI memungkinkan Anda untuk memeriksa hal berikut untuk setiap tugas:

  • Lini waktu peristiwa dari setiap tahap Spark

  • Grafik asiklik terarah (DAG) dari tugas tersebut

  • Rencana fisik dan logis untuk kueri SparkSQL

  • Variabel lingkungan Spark yang mendasari untuk setiap tugas

Untuk informasi selengkapnya tentang penggunaan UI Web Spark, lihat UI Web di dokumentasi Spark. Untuk panduan tentang cara menafsirkan hasil Spark UI guna meningkatkan kinerja pekerjaan Anda, lihat Praktik terbaik untuk penyetelan AWS Glue kinerja untuk pekerjaan Apache Spark di Panduan Preskriptif. AWS

Anda dapat melihat UI Spark di AWS Glue konsol. Ini tersedia ketika AWS Glue pekerjaan berjalan pada versi AWS Glue 3.0 atau yang lebih baru dengan log yang dihasilkan dalam format Standar (bukan warisan), yang merupakan default untuk pekerjaan yang lebih baru. Jika Anda memiliki file log lebih besar dari 0,5 GB, Anda dapat mengaktifkan dukungan log bergulir untuk pekerjaan berjalan pada versi AWS Glue 4.0 atau yang lebih baru untuk menyederhanakan pengarsipan log, analisis, dan pemecahan masalah.

Anda dapat mengaktifkan UI Spark dengan menggunakan AWS Glue konsol atau AWS Command Line Interface (AWS CLI). Saat Anda mengaktifkan UI Spark, pekerjaan AWS Glue ETL, dan aplikasi Spark pada titik akhir AWS Glue pengembangan dapat mencadangkan log peristiwa Spark ke lokasi yang Anda tentukan di Amazon Simple Storage Service (Amazon S3). Anda dapat menggunakan log peristiwa yang dicadangkan di Amazon S3 dengan Spark UI, baik secara real time saat pekerjaan beroperasi dan setelah pekerjaan selesai. Meskipun log tetap ada di Amazon S3, UI Spark di AWS Glue konsol dapat melihatnya.

Izin

Untuk menggunakan UI Spark di AWS Glue konsol, Anda dapat menggunakan UseGlueStudio atau menambahkan semua API layanan individual. Semua API diperlukan untuk menggunakan UI Spark sepenuhnya, namun pengguna dapat mengakses fitur SparkUI dengan menambahkan API layanannya di izin IAM mereka untuk akses berbutir halus.

RequestLogParsingadalah yang paling penting karena melakukan penguraian log. API yang tersisa adalah untuk membaca data yang diuraikan masing-masing. Misalnya, GetStages menyediakan akses ke data tentang semua tahapan pekerjaan Spark.

Daftar API layanan Spark UI yang dipetakan UseGlueStudio ada di bawah ini dalam kebijakan sampel. Kebijakan di bawah ini menyediakan akses untuk hanya menggunakan fitur UI Spark. Untuk menambahkan lebih banyak izin seperti Amazon S3 dan IAM, lihat Membuat Kebijakan IAM Kustom untuk. AWS Glue Studio

Daftar API layanan Spark UI yang dipetakan UseGlueStudio ada di bawah ini dalam kebijakan sampel. Saat menggunakan API layanan Spark UI, gunakan namespace berikut:. glue:<ServiceAPI>

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGlueStudioSparkUI", "Effect": "Allow", "Action": [ "glue:RequestLogParsing", "glue:GetLogParsingStatus", "glue:GetEnvironment", "glue:GetJobs", "glue:GetJob", "glue:GetStage", "glue:GetStages", "glue:GetStageFiles", "glue:BatchGetStageFiles", "glue:GetStageAttempt", "glue:GetStageAttemptTaskList", "glue:GetStageAttemptTaskSummary", "glue:GetExecutors", "glue:GetExecutorsThreads", "glue:GetStorage", "glue:GetStorageUnit", "glue:GetQueries", "glue:GetQuery" ], "Resource": [ "*" ] } ] }

Batasan

  • Spark UI di AWS Glue konsol tidak tersedia untuk menjalankan pekerjaan yang terjadi sebelum 20 November 2023 karena berada dalam format log lama.

  • Spark UI di AWS Glue konsol mendukung rolling log untuk AWS Glue 4.0, seperti yang dihasilkan secara default dalam pekerjaan streaming. Jumlah maksimum dari semua file peristiwa log gulung yang dihasilkan adalah 2 GB. Untuk AWS Glue pekerjaan tanpa dukungan log yang digulung, ukuran file peristiwa log maksimum yang didukung untuk SparkUI adalah 0,5 GB.

  • UI Spark Tanpa Server tidak tersedia untuk log peristiwa Spark yang disimpan di bucket Amazon S3 yang hanya dapat diakses oleh VPC Anda.

Contoh: Apache Spark web UI

Contoh ini menunjukkan cara menggunakan UI Spark untuk memahami kinerja pekerjaan Anda. Tangkapan layar menunjukkan UI web Spark seperti yang disediakan oleh server riwayat Spark yang dikelola sendiri. Spark UI di AWS Glue konsol memberikan tampilan serupa. Untuk informasi selengkapnya tentang penggunaan UI Web Spark, lihat UI Web di dokumentasi Spark.

Berikut ini adalah contoh aplikasi Spark yang membaca dari dua sumber data, melakukan transformasi gabungan, dan menuliskannya ke Amazon S3 dalam format Parket.

import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from pyspark.sql.functions import count, when, expr, col, sum, isnull from pyspark.sql.functions import countDistinct from awsglue.dynamicframe import DynamicFrame args = getResolvedOptions(sys.argv, ['JOB_NAME']) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args['JOB_NAME']) df_persons = spark.read.json("s3://awsglue-datasets/examples/us-legislators/all/persons.json") df_memberships = spark.read.json("s3://awsglue-datasets/examples/us-legislators/all/memberships.json") df_joined = df_persons.join(df_memberships, df_persons.id == df_memberships.person_id, 'fullouter') df_joined.write.parquet("s3://aws-glue-demo-sparkui/output/") job.commit()

Visualisasi DAG berikut menunjukkan tahapan yang berbeda dalam tugas Spark ini.

Tangkapan layar dari Spark UI yang menunjukkan 2 tahap yang diselesaikan untuk tugas 0.

Lini waktu peristiwa tugas berikut menunjukkan awal, eksekusi, dan pengakhiran pelaksana Spark yang berbeda.

Tangkapan layar dari Spark UI yang menunjukkan tahap yang sudah selesai, gagal, dan aktif dari pelaksana Spark yang berbeda.

Layar berikut menunjukkan detail dari rencana kueri SparkSQL:

  • Rencana logis diurai

  • Rencana logis yang dianalisis

  • Rencana logis yang dioptimalkan

  • Rencana fisik untuk eksekusi

Rencana kueri SparkSQL: rencana logis dan rencana fisik yang diurai, dianalisis, dan dioptimalkan untuk eksekusi.