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 stdout
stderr
, 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 nilaivar
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 Log4jDEBUG
,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
-
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. -
Ikuti langkah-langkah Membuat buku catatan Anda sendiri untuk membuat buku catatan dan meluncurkan sesi baru.
-
Di editor notebook Athena, di sel notebook baru, masukkan perintah berikut:
athena_user_logger.info("Hello world.")
-
Jalankan sel.
-
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
.
-
-
Simpan ID sesi.
-
Dengan hal Akun AWS yang sama yang Anda gunakan untuk menjalankan sesi notebook, buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi CloudWatch konsol, pilih Grup log.
-
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
-
Pilih tautan aliran log untuk sesi Anda.
-
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.
-
Kembali ke editor notebook Athena.
-
Di sel baru, masukkan kode berikut. Kode mencatat variabel ke CloudWatch:
x = 6 athena_user_logger.warn(x)
-
Jalankan sel.
-
Kembali ke halaman peristiwa Log CloudWatch konsol untuk aliran log yang sama.
-
Aliran log sekarang berisi entri peristiwa log dengan pesan seperti berikut:
AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6