Acara aplikasi Logging Spark di Athena - Amazon Athena

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

Acara aplikasi Logging Spark di Athena

Editor notebook Athena memungkinkan logging Jupyter, Spark, dan Python standar. Anda dapat menggunakan df.show() untuk menampilkan PySpark DataFrame konten atau digunakan print("Output") untuk menampilkan nilai dalam output sel. Output stdoutstderr, dan results output untuk perhitungan Anda ditulis ke lokasi bucket hasil kueri Anda di Amazon S3.

Logging acara aplikasi Spark ke Amazon CloudWatch

Sesi Athena Anda juga dapat menulis log ke Amazon CloudWatch di akun yang Anda gunakan.

Memahami aliran log dan grup log

CloudWatch mengatur aktivitas log ke dalam aliran log dan grup log.

Aliran log - Aliran CloudWatch log adalah urutan peristiwa log yang berbagi sumber yang sama. Setiap sumber log terpisah di CloudWatch Log membentuk aliran log terpisah.

Grup log — Di CloudWatch Log, grup log adalah grup aliran log yang berbagi pengaturan retensi, pemantauan, dan kontrol akses yang sama.

Tidak ada batas jumlah pengaliran log yang dapat tergabung dalam satu grup log.

Di Athena, saat Anda memulai sesi buku catatan untuk pertama kalinya, Athena membuat grup log CloudWatch yang menggunakan nama grup kerja berkemampuan SPARK, seperti pada contoh berikut.

/aws-athena/workgroup-name

Grup log ini menerima satu aliran log untuk setiap eksekutor di sesi Anda yang menghasilkan setidaknya satu peristiwa log. Pelaksana adalah unit komputasi terkecil yang dapat diminta oleh sesi notebook dari Athena. Di CloudWatch, nama aliran log dimulai dengan ID sesi dan ID pelaksana.

Untuk informasi selengkapnya tentang grup CloudWatch log dan aliran log, lihat Bekerja dengan grup log dan aliran log di Panduan Pengguna CloudWatch Log Amazon.

Menggunakan objek logger standar di Athena untuk Spark

Dalam sesi Athena for Spark, Anda dapat menggunakan dua objek logger standar global berikut untuk menulis log ke Amazon: CloudWatch

  • athena_user_logger - Mengirim log ke saja. CloudWatch Gunakan objek ini ketika Anda ingin mencatat informasi aplikasi Spark Anda secara langsung CloudWatch, seperti pada contoh berikut.

    athena_user_logger.info("CloudWatch log line.")

    Contoh menulis peristiwa log untuk CloudWatch menyukai yang berikut:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line.
  • athena_shared_logger — Mengirim log yang sama baik ke maupun ke untuk tujuan dukungan. CloudWatch AWS Anda dapat menggunakan objek ini untuk berbagi log dengan tim AWS layanan untuk pemecahan masalah, seperti pada contoh berikut.

    athena_shared_logger.info("Customer debug line.") var = [...some variable holding customer data...] athena_shared_logger.info(var)

    Contoh mencatat debug baris dan nilai var variabel ke CloudWatch Log dan mengirimkan salinan dari setiap baris ke AWS Support.

    catatan

    Untuk privasi Anda, kode perhitungan dan hasil Anda tidak dibagikan AWS. Pastikan panggilan Anda hanya athena_shared_logger menulis informasi yang ingin Anda lihat AWS Support.

Logger yang disediakan menulis peristiwa melalui Apache Log4j dan mewarisi tingkat logging antarmuka ini. Nilai tingkat log yang mungkin adalahDEBUG,ERROR,FATAL,INFO, dan WARN atauWARNING. Anda dapat menggunakan fungsi bernama yang sesuai pada logger untuk menghasilkan nilai-nilai ini.

catatan

Jangan membalas nama athena_user_logger atau. athena_shared_logger Melakukannya membuat objek logging tidak dapat menulis CloudWatch untuk sisa sesi.

Contoh: mencatat peristiwa buku catatan ke CloudWatch

Prosedur berikut menunjukkan cara mencatat peristiwa notebook Athena ke Amazon CloudWatch Logs.

Untuk mencatat peristiwa notebook Athena ke Amazon Logs CloudWatch
  1. Ikuti Memulai dengan Apache Spark di Amazon Athena untuk membuat workgroup berkemampuan Spark di Athena dengan nama unik. Tutorial ini menggunakan nama athena-spark-example workgroup.

  2. Ikuti langkah-langkah Membuat buku catatan Anda sendiri untuk membuat buku catatan dan meluncurkan sesi baru.

  3. Di editor notebook Athena, di sel notebook baru, masukkan perintah berikut:

    athena_user_logger.info("Hello world.")
  4. Jalankan sel.

  5. Ambil ID sesi saat ini dengan melakukan salah satu hal berikut:

    • Lihat output sel (misalnya,... session=72c24e73-2c24-8b22-14bd-443bdcd72de4).

    • Di sel baru, jalankan perintah ajaib%session_id.

  6. Simpan ID sesi.

  7. Dengan hal Akun AWS yang sama yang Anda gunakan untuk menjalankan sesi notebook, buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  8. Di panel navigasi CloudWatch konsol, pilih Grup log.

  9. Dalam daftar grup log, pilih grup log yang memiliki nama grup kerja Athena berkemampuan SPARK Anda, seperti pada contoh berikut.

    /aws-athena/athena-spark-example

    Bagian Aliran log berisi daftar satu atau beberapa tautan aliran log untuk grup kerja. Setiap nama aliran log berisi ID sesi, ID pelaksana, dan UUID unik yang dipisahkan oleh karakter garis miring maju.

    Misalnya, jika ID sesi 5ac22d11-9fd8-ded7-6542-0412133d3177 dan ID pelaksana adalahf8c22d11-9fd8-ab13-8aba-c4100bfba7e2, nama aliran log menyerupai contoh berikut.

    5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
  10. Pilih tautan aliran log untuk sesi Anda.

  11. Pada halaman Log peristiwa, lihat kolom Pesan.

    Peristiwa log untuk sel yang Anda jalankan menyerupai berikut ini:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
  12. Kembali ke editor notebook Athena.

  13. Di sel baru, masukkan kode berikut. Kode mencatat variabel ke CloudWatch:

    x = 6 athena_user_logger.warn(x)
  14. Jalankan sel.

  15. Kembali ke halaman peristiwa Log CloudWatch konsol untuk aliran log yang sama.

  16. Aliran log sekarang berisi entri peristiwa log dengan pesan seperti berikut:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6