Pemecahan masalah AWS Glue untuk kesalahan Ray dari log - AWS Glue

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

Pemecahan masalah AWS Glue untuk kesalahan Ray dari log

AWS Gluemenyediakan akses ke log yang dipancarkan oleh proses Ray selama pekerjaan dijalankan. Jika Anda menemukan kesalahan atau perilaku tak terduga dalam pekerjaan Ray, pertama-tama kumpulkan informasi dari log untuk menentukan penyebab kegagalan. Kami juga menyediakan log serupa untuk sesi interaktif. Log sesi disediakan dengan /aws-glue/ray/sessions awalan.

Garis log dikirim ke CloudWatch dalam waktu nyata, karena pekerjaan Anda dijalankan. Pernyataan cetak ditambahkan ke CloudWatch log setelah proses selesai. Log disimpan selama dua minggu setelah pekerjaan dijalankan.

Memeriksa log pekerjaan Ray

Ketika pekerjaan gagal, kumpulkan nama pekerjaan dan ID pekerjaan Anda. Anda dapat menemukannya di AWS Glue konsol. Arahkan ke halaman lowongan, lalu arahkan ke tab Runs. Log pekerjaan ray disimpan dalam grup CloudWatch log khusus berikut.

  • /aws-glue/ray/jobs/script-log/— Menyimpan log yang dipancarkan oleh skrip Ray utama Anda.

  • /aws-glue/ray/jobs/ray-monitor-log/— Menyimpan log yang dipancarkan oleh proses autoscaler Ray. Log ini dihasilkan untuk node kepala dan bukan untuk node pekerja lainnya.

  • /aws-glue/ray/jobs/ray-gcs-logs/— Menyimpan log yang dipancarkan oleh proses GCS (toko kontrol global). Log ini dihasilkan untuk node kepala dan bukan untuk node pekerja lainnya.

  • /aws-glue/ray/jobs/ray-process-logs/— Menyimpan log yang dipancarkan oleh proses Ray lainnya (terutama agen dasbor) yang berjalan di simpul kepala. Log ini dihasilkan untuk node kepala dan bukan untuk node pekerja lainnya.

  • /aws-glue/ray/jobs/ray-raylet-logs/— Menyimpan log yang dipancarkan oleh setiap proses raylet. Log ini dikumpulkan dalam satu aliran untuk setiap node pekerja, termasuk node kepala.

  • /aws-glue/ray/jobs/ray-worker-out-logs/— Menyimpan stdout log untuk setiap pekerja di cluster. Log ini dihasilkan untuk setiap node pekerja, termasuk node kepala.

  • /aws-glue/ray/jobs/ray-worker-err-logs/— Menyimpan stderr log untuk setiap pekerja di cluster. Log ini dihasilkan untuk setiap node pekerja, termasuk node kepala.

  • /aws-glue/ray/jobs/ray-runtime-env-log/— Menyimpan log tentang proses penyiapan Ray. Log ini dihasilkan untuk setiap node pekerja, termasuk node kepala.

Memecahkan masalah kesalahan pekerjaan Ray

Untuk memahami organisasi grup log Ray, dan untuk menemukan grup log yang akan membantu Anda memecahkan masalah kesalahan Anda, ada baiknya memiliki informasi latar belakang tentang arsitektur Ray.

Dalam AWS Glue ETL, seorang pekerja berhubungan dengan sebuah instance. Saat Anda mengonfigurasi pekerja untuk suatu AWS Glue pekerjaan, Anda mengatur jenis dan jumlah instance yang didedikasikan untuk pekerjaan tersebut. Ray menggunakan istilah pekerja dengan cara yang berbeda.

Ray menggunakan node kepala dan node pekerja untuk membedakan tanggung jawab sebuah instance dalam cluster Ray. Node pekerja Ray dapat meng-host beberapa proses aktor yang melakukan perhitungan untuk mencapai hasil komputasi terdistribusi Anda. Aktor yang menjalankan replika fungsi disebut replika. Aktor replika juga bisa disebut proses pekerja. Replika juga dapat berjalan pada node kepala, yang dikenal sebagai head karena menjalankan proses tambahan untuk mengoordinasikan cluster.

Setiap aktor yang berkontribusi pada perhitungan Anda menghasilkan aliran lognya sendiri. Ini memberi kami beberapa wawasan:

  • Jumlah proses yang memancarkan log mungkin lebih besar dari jumlah pekerja yang dialokasikan untuk pekerjaan itu. Seringkali, setiap inti pada setiap instance memiliki aktor.

  • Node kepala Ray memancarkan manajemen cluster dan log startup. Sebaliknya, node pekerja Ray hanya memancarkan log untuk pekerjaan yang dilakukan pada mereka.

Untuk informasi selengkapnya tentang arsitektur Ray, lihat Whitepaper Arsitektur dalam dokumentasi Ray.

Area masalah: Akses Amazon S3

Periksa pesan kegagalan dari pekerjaan yang dijalankan. Jika itu tidak memberikan informasi yang cukup, periksa/aws-glue/ray/jobs/script-log/.

Area masalah: Manajemen ketergantungan PIP

Memeriksa./aws-glue/ray/jobs/ray-runtime-env-log/

Area masalah: Memeriksa nilai antara dalam proses utama

Tulis ke stderr atau stdout dari skrip utama Anda, dan ambil log dari/aws-glue/ray/jobs/script-log/.

Area masalah: Memeriksa nilai antara dalam proses anak

Menulis ke stderr atau stdout dari remote fungsi Anda. Kemudian, ambil log dari /aws-glue/ray/jobs/ray-worker-out-logs/ atau/aws-glue/ray/jobs/ray-worker-err-logs/. Fungsi Anda mungkin telah berjalan pada replika apa pun, jadi Anda mungkin harus memeriksa beberapa log untuk menemukan output yang Anda inginkan.

Area masalah: Menafsirkan alamat IP dalam pesan kesalahan

Dalam situasi kesalahan tertentu, pekerjaan Anda mungkin memancarkan pesan kesalahan yang berisi alamat IP. Alamat IP ini bersifat sementara, dan digunakan oleh cluster untuk mengidentifikasi dan berkomunikasi antar node. Log untuk node akan dipublikasikan ke aliran log dengan akhiran unik berdasarkan alamat IP.

Di CloudWatch, Anda dapat memfilter log Anda untuk memeriksa yang spesifik untuk alamat IP ini dengan mengidentifikasi akhiran ini. Misalnya, diberikan FAILED_IP dan JOB_RUN_ID, Anda dapat mengidentifikasi akhiran dengan:

filter @logStream like /JOB_RUN_ID/ | filter @message like /IP-/ | parse @message "IP-[*]" as ip | filter ip like /FAILED_IP/ | fields replace(ip, ":", "_") as uIP | stats count_distinct by uIP as logStreamSuffix | display logStreamSuffix