Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pencatatan dan pemantauan untuk sesi Apache Spark
Dari rilis Apache Spark versi 3.5 dan seterusnya, Anda dapat menentukan terkelola, Amazon S3, atau CloudWatch logging sebagai opsi logging Anda.
Dengan logging terkelola dan logging S3, tabel berikut mencantumkan lokasi log dan ketersediaan UI yang dapat Anda harapkan jika Anda memilih opsi tersebut.
| Opsi | Log peristiwa | Log Kontainer | UI Aplikasi |
|---|---|---|---|
| Pencatatan terkelola (default) | Disimpan dalam bucket S3 terkelola | Disimpan dalam bucket S3 terkelola | Didukung |
| Baik logging terkelola maupun bucket S3 | Disimpan di kedua tempat | Disimpan dalam ember S3 | Didukung |
| Buket Amazon S3 | Disimpan dalam ember S3 | Disimpan dalam ember S3 | Tidak didukung 1 |
1 Kami menyarankan agar Anda tetap memilih opsi Pencatatan terkelola. Jika tidak, Anda tidak dapat menggunakan aplikasi bawaan UIs.
Pencatatan terkelola
Secara default, workgroup Athena Spark menyimpan log aplikasi dengan aman di bucket S3 yang dikelola layanan selama maksimal 30 hari.
Anda dapat secara opsional memberikan kunci KMS (id kunci, arn, alias, atau alias arn) yang akan digunakan layanan untuk mengenkripsi log terkelola.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, }' --engine-configuration ''
catatan
Jika Anda menonaktifkan logging terkelola, Athena tidak dapat memecahkan masalah sesi Anda atas nama Anda. Contoh: Anda tidak akan mengakses Spark-UI dari Amazon SageMaker AI Studio Notebooks atau menggunakan API. GetResourceDashboard
Untuk mematikan opsi ini dari AWS CLI, gunakan ManagedLoggingConfiguration konfigurasi saat Anda memulai sesi interaktif.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "ManagedLoggingConfiguration": { "Enabled": false }, }' --engine-configuration ''
Izin yang diperlukan untuk logging terkelola
Jika Anda memberikan kunci KMS, Anda akan memerlukan izin berikut dalam kebijakan izin untuk peran eksekusi.
{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }
Pencatatan Amazon S3
Anda dapat mengonfigurasi pengiriman log ke bucket Amazon S3.
Untuk mengaktifkan pengiriman log S3 dari AWS CLI, gunakan S3LoggingConfiguration konfigurasi saat Anda memulai sesi interaktif.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", }, }' --engine-configuration ''
Anda dapat secara opsional memberikan kunci KMS (id kunci, arn, alias, atau alias arn) yang akan digunakan layanan untuk mengenkripsi log S3.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "S3LoggingConfiguration": { "Enabled":true, "LogLocation": "s3://bucket/", "KmsKey": "KMS_KEY" }, }' --engine-configuration ''
Izin yang diperlukan untuk pengiriman log ke Amazon S3
Sebelum sesi Anda dapat mengirimkan log ke bucket Amazon S3, sertakan izin berikut dalam kebijakan izin untuk peran eksekusi.
{ "Action": "s3:*", "Resource": "*", "Effect": "Allow" }
Jika Anda memberikan kunci KMS, Anda juga akan memerlukan izin berikut dalam kebijakan izin untuk peran eksekusi.
{ "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Effect": "Allow" }
Jika kunci kms dan bucket bukan dari akun yang sama maka KMS perlu mengizinkan prinsipal layanan S3.
{ "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_HAVING_KMS_KEY" } } }
CloudWatch penebangan
Anda dapat mengonfigurasi pengiriman log ke grup CloudWatch log.
Untuk mengaktifkan pengiriman log S3 dari AWS CLI, gunakan CloudWatchLoggingConfiguration konfigurasi saat Anda memulai sesi interaktif.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-" } }' --engine-configuration ''
Semua log akan dikirimkan secara default, tetapi Anda dapat secara opsional menentukan jenis log mana yang akan disertakan.
aws athena start-session \ --work-group "WORKGROUP" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }' --engine-configuration ''
Izin yang diperlukan untuk pengiriman log ke CloudWatch
Sebelum sesi Anda dapat mengirimkan CloudWatch log ke grup log, sertakan izin berikut dalam kebijakan izin untuk peran eksekusi.
{ "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*", "Effect": "Allow" }
Dan mengikuti izin untuk kebijakan sumber daya kunci KMS.
{ "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Mengkonfigurasi default logging di Workgroup
Anda juga dapat menentukan opsi logging default di tingkat Workgroup.
Untuk menentukan opsi logging default dari AWS CLI untuk workgroup, gunakan monitoring-configuration konfigurasi saat membuat Workgroup baru:
aws athena create-work-group \ --region "REGION" \ --name "WORKGROUP_NAME" \ --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } }, "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, "S3LoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" "LogLocation": "s3://bucket/", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }'
Untuk mengubah opsi logging default dari workgroup AWS CLI untuk, gunakan monitoring-configuration konfigurasi saat memperbarui Workgroup. Perubahan berlaku untuk sesi interaktif baru ke depan.
aws athena update-work-group \ --region "REGION" \ --work-group "WORKGROUP_NAME" --monitoring-configuration '{ "CloudWatchLoggingConfiguration": { "Enabled": true, "LogGroup": "/aws/athena/sessions/${workgroup}", "LogStreamNamePrefix": "session-", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } }, "ManagedLoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" }, "S3LoggingConfiguration": { "Enabled": true, "KmsKey": "KMS_KEY" "LogLocation": "s3://bucket/", "LogTypes": { "SPARK_DRIVER": [ "STDOUT", "STDERR" ], "SPARK_EXECUTOR": [ "STDOUT", "STDERR" ] } } }'