Menggunakan rotasi log kontainer Spark - Amazon EMR

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

Menggunakan rotasi log kontainer Spark

Dengan Amazon EMR 6.11.0 dan versi lebih baru, Anda dapat mengaktifkan fitur rotasi log kontainer Spark untuk Amazon EMR di EKS. Alih-alih menghasilkan satustdoutataustderrlog file, fitur ini memutar file berdasarkan ukuran rotasi Anda dikonfigurasi dan menghapus file log tertua dari wadah.

Memutar log kontainer Spark dapat membantu Anda menghindari potensi masalah dengan file log Spark besar yang dihasilkan untuk pekerjaan yang berjalan lama atau streaming. Misalnya, Anda mungkin memulai pekerjaan Spark yang berjalan lama, dan driver Spark menghasilkan file log kontainer. Jika pekerjaan berjalan selama berjam-jam atau hari dan ada ruang disk terbatas pada node Kubernetes, file log kontainer dapat menggunakan semua ruang disk yang tersedia. Saat mengaktifkan rotasi log kontainer Spark, Anda membagi file log menjadi beberapa file, dan menghapus file terlama.

Untuk mengaktifkan fitur rotasi log kontainer Spark, konfigurasikan parameter Spark berikut:

containerLogRotationConfiguration

Sertakan parameter ini dimonitoringConfigurationuntuk mengaktifkan rotasi log. Ini dinonaktifkan secara default. Anda harus menggunakancontainerLogRotationConfigurationselains3MonitoringConfiguration.

rotationSize

YangrotationSizeparameter menentukan ukuran file untuk rotasi log. Kisaran nilai yang mungkin adalah dari2KBkepada2GB. Bagian satuan numerik darirotationSizeparameter dilewatkan sebagai integer. Karena nilai desimal tidak didukung, Anda dapat menentukan ukuran rotasi 1,5GB, misalnya, dengan nilai1500MB.

maxFilesToKeep

YangmaxFilesToKeepparameter menentukan jumlah maksimum file untuk mempertahankan dalam wadah setelah rotasi telah terjadi. Nilai minimum adalah 1, dan nilai maksimumnya adalah 50.

Anda dapat menentukan parameter ini dalam bagian monitoringConfiguration dari API StartJobRun, seperti yang ditunjukkan contoh berikut. Dalam contoh ini, denganrotationSize = "10 MB"danmaxFilesToKeep = 3, Amazon EMR di EKS memutar log Anda pada 10 MB, menghasilkan file log baru, dan kemudian membersihkan file log tertua setelah jumlah file log mencapai 3.

{ "name": "my-long-running-job", "virtualClusterId": "123456", "executionRoleArn": "iam_role_name_for_job_execution", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "entryPoint_location", "entryPointArguments": ["argument1", "argument2", ...], "sparkSubmitParameters": "--class main_class --conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.driver.memory":"2G" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED", "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group", "logStreamNamePrefix": "log_stream_prefix" }, "s3MonitoringConfiguration": { "logUri": "s3://my_s3_log_location" }, "containerLogRotationConfiguration": { "rotationSize":"10MB", "maxFilesToKeep":"3" } } } }

Untuk memulai pekerjaan yang dijalankan dengan rotasi log kontainer Spark, sertakan jalur ke file json yang Anda konfigurasikan dengan parameter ini diStartJobRunperintah.

aws emr-containers start-job-run \ --cli-input-json file://path-to-json-request-file