Pemantauan dengan wawasan menjalankan AWS Glue pekerjaan - AWS Glue

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

Pemantauan dengan wawasan menjalankan AWS Glue pekerjaan

AWS Gluejob run insights adalah fitur AWS Glue yang menyederhanakan debugging dan pengoptimalan pekerjaan untuk pekerjaan Anda. AWS Glue AWS Gluemenyediakan Spark UI, serta CloudWatch log dan metrik untuk memantau pekerjaan Anda AWS Glue . Dengan fitur ini, Anda mendapatkan informasi ini tentang eksekusi AWS Glue pekerjaan Anda:

  • Nomor baris skrip AWS Glue pekerjaan Anda yang mengalami kegagalan.

  • Tindakan percikan yang dieksekusi terakhir dalam rencana kueri Spark tepat sebelum kegagalan pekerjaan Anda.

  • Peristiwa pengecualian percikan terkait dengan kegagalan yang disajikan dalam aliran log yang diurutkan waktu.

  • Analisis akar penyebab dan tindakan yang disarankan (seperti menyetel skrip Anda) untuk memperbaiki masalah.

  • Peristiwa Spark umum (pesan log yang berkaitan dengan tindakan Spark) dengan tindakan yang direkomendasikan yang membahas akar penyebabnya.

Semua wawasan ini tersedia untuk Anda menggunakan dua aliran log baru di CloudWatch log untuk pekerjaan AndaAWS Glue.

Persyaratan

Fitur AWS Glue job run insights tersedia untuk AWS Glue versi 2.0, 3.0, dan 4.0. Anda dapat mengikuti panduan migrasi untuk pekerjaan yang ada untuk memutakhirkannya dari AWS Glue versi yang lebih lama.

Mengaktifkan wawasan menjalankan pekerjaan untuk pekerjaan ETL AWS Glue

Anda dapat mengaktifkan wawasan menjalankan pekerjaan melalui AWS Glue Studio atau CLI.

AWS Glue Studio

Saat membuat pekerjaan melaluiAWS Glue Studio, Anda dapat mengaktifkan atau menonaktifkan wawasan menjalankan pekerjaan di bawah tab Rincian Pekerjaan. Centang apakah kotak Hasilkan wawasan pekerjaan dipilih.

Mengaktifkan wawasan menjalankan pekerjaan di. AWS Glue Studio

Baris perintah

Jika membuat pekerjaan melalui CLI, Anda dapat memulai pekerjaan dengan satu parameter pekerjaan baru:. --enable-job-insights = true

Secara default, aliran log wawasan job run dibuat di bawah grup log default yang sama yang digunakan oleh logging AWS Glue berkelanjutan, yaitu,. /aws-glue/jobs/logs-v2/ Anda dapat mengatur nama grup log kustom, filter log, dan konfigurasi grup log menggunakan kumpulan argumen yang sama untuk pencatatan berkelanjutan. Untuk informasi selengkapnya, lihat Mengaktifkan Pencatatan Berkelanjutan untuk AWS Glue Pekerjaan.

Mengakses aliran log wawasan job run di CloudWatch

Dengan fitur job run insights diaktifkan, mungkin ada dua aliran log yang dibuat saat pekerjaan dijalankan gagal. Ketika pekerjaan selesai dengan sukses, tidak satu pun dari aliran yang dihasilkan.

  1. Aliran log analisis pengecualian:<job-run-id>-job-insights-rca-driver. Aliran ini menyediakan yang berikut:

    • Nomor baris skrip AWS Glue pekerjaan Anda yang menyebabkan kegagalan.

    • Tindakan percikan yang dieksekusi terakhir dalam rencana kueri Spark (DAG).

    • Peristiwa singkat yang diurutkan waktu dari driver Spark dan pelaksana yang terkait dengan pengecualian. Anda dapat menemukan detail seperti pesan kesalahan lengkap, tugas Spark yang gagal, dan ID pelaksana yang membantu Anda fokus pada aliran log pelaksana tertentu untuk penyelidikan lebih dalam jika diperlukan.

  2. Aliran wawasan berbasis aturan:

    • Analisis akar penyebab dan rekomendasi tentang cara memperbaiki kesalahan (seperti menggunakan parameter pekerjaan tertentu untuk mengoptimalkan kinerja).

    • Peristiwa Spark yang relevan berfungsi sebagai dasar untuk analisis akar penyebab dan tindakan yang direkomendasikan.

catatan

Aliran pertama hanya akan ada jika peristiwa Spark pengecualian tersedia untuk menjalankan pekerjaan yang gagal, dan aliran kedua hanya akan ada jika ada wawasan yang tersedia untuk menjalankan pekerjaan yang gagal. Misalnya, jika pekerjaan Anda berhasil diselesaikan, tidak satu pun aliran akan dihasilkan; jika pekerjaan Anda gagal tetapi tidak ada aturan yang ditentukan layanan yang dapat cocok dengan skenario kegagalan Anda, maka hanya aliran pertama yang akan dihasilkan.

Jika pekerjaan dibuat dariAWS Glue Studio, tautan ke aliran di atas juga tersedia di bawah tab rincian pekerjaan (Wawasan Jalankan pekerjaan) sebagai “Log kesalahan ringkas dan terkonsolidasi” dan “Analisis dan panduan kesalahan”.

Halaman Detail Jalankan Pekerjaan yang berisi tautan ke aliran log.

Contoh untuk wawasan menjalankan AWS Glue pekerjaan

Di bagian ini kami menyajikan contoh bagaimana fitur job run insights dapat membantu Anda menyelesaikan masalah dalam pekerjaan yang gagal. Dalam contoh ini, pengguna lupa mengimpor modul yang diperlukan (tensorflow) dalam AWS Glue pekerjaan untuk menganalisis dan membangun model pembelajaran mesin pada data mereka.

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.types import * from pyspark.sql.functions import udf,col args = getResolvedOptions(sys.argv, ['JOB_NAME']) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args['JOB_NAME'], args) data_set_1 = [1, 2, 3, 4] data_set_2 = [5, 6, 7, 8] scoresDf = spark.createDataFrame(data_set_1, IntegerType()) def data_multiplier_func(factor, data_vector): import tensorflow as tf with tf.compat.v1.Session() as sess: x1 = tf.constant(factor) x2 = tf.constant(data_vector) result = tf.multiply(x1, x2) return sess.run(result).tolist() data_multiplier_udf = udf(lambda x:data_multiplier_func(x, data_set_2), ArrayType(IntegerType(),False)) factoredDf = scoresDf.withColumn("final_value", data_multiplier_udf(col("value"))) print(factoredDf.collect())

Tanpa fitur job run insights, karena pekerjaan gagal, Anda hanya melihat pesan ini dilemparkan oleh Spark:

An error occurred while calling o111.collectToPython. Traceback (most recent call last):

Pesannya ambigu dan membatasi pengalaman debugging Anda. Dalam hal ini, fitur ini memberi Anda wawasan tambahan dalam dua aliran CloudWatch log:

  1. Aliran job-insights-rca-driver log:

    • Peristiwa pengecualian: Aliran log ini memberi Anda peristiwa pengecualian Spark yang terkait dengan kegagalan yang dikumpulkan dari driver Spark dan pekerja terdistribusi yang berbeda. Peristiwa ini membantu Anda memahami propagasi pengecualian yang diatur waktu karena kode yang salah dijalankan di seluruh tugas Spark, pelaksana, dan tahapan yang didistribusikan ke seluruh pekerja. AWS Glue

    • Nomor baris: Aliran log ini mengidentifikasi baris 21, yang membuat panggilan untuk mengimpor modul Python yang hilang yang menyebabkan kegagalan; itu juga mengidentifikasi baris 24, panggilan ke Spark collect() Action, sebagai baris terakhir yang dieksekusi dalam skrip Anda.

    Aliran job-insights-rca-driver log.
  2. Aliran job-insights-rule-driver log:

    • Akar penyebab dan rekomendasi: Selain nomor baris dan nomor baris terakhir yang dieksekusi untuk kesalahan dalam skrip Anda, aliran log ini menunjukkan analisis akar penyebab dan rekomendasi bagi Anda untuk mengikuti AWS Glue dokumen dan mengatur parameter pekerjaan yang diperlukan untuk menggunakan modul Python tambahan dalam pekerjaan AndaAWS Glue.

    • Peristiwa dasar: Aliran log ini juga menunjukkan peristiwa pengecualian Spark yang dievaluasi dengan aturan yang ditentukan layanan untuk menyimpulkan akar penyebab dan memberikan rekomendasi.

    Aliran job-insights-rule-driver log.