View a markdown version of this page

Menggunakan klasifikasi pengirim pekerjaan - Amazon EMR

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

Menggunakan klasifikasi pengirim pekerjaan

Ikhtisar

EMR Amazon StartJobRun berdasarkan permintaan EKS membuat pod pengirim pekerjaan (juga dikenal sebagai pod job-runner) untuk menelurkan driver Spark. Anda dapat menggunakan emr-job-submitter klasifikasi untuk mengonfigurasi pemilih node, menambahkan toleransi, menyesuaikan logging, dan membuat modifikasi lain pada pod pengirim pekerjaan.

Pengaturan berikut tersedia di bawah emr-job-submitter klasifikasi:

jobsubmitter.node.selector.[selectorKey]

Menambahkan ke pemilih node dari pod pengirim pekerjaan, dengan kunci selectorKey dan nilai sebagai nilai konfigurasi. Misalnya, Anda dapat mengatur jobsubmitter.node.selector.identifier ke myIdentifier dan pod pengirim pekerjaan akan memiliki pemilih node dengan kunci identifier dan nilai. myIdentifier Ini dapat digunakan untuk menentukan node mana pod pengirim pekerjaan dapat ditempatkan. Untuk menambahkan beberapa kunci pemilih node, atur beberapa konfigurasi dengan awalan ini.

jobsubmitter.label.[labelKey]

Menambahkan label pod pengirim pekerjaan, dengan kunci labelKey dan nilai sebagai nilai konfigurasi. Untuk menambahkan beberapa label, atur beberapa konfigurasi dengan awalan ini.

jobsubmitter.annotation.[annotationKey]

Menambahkan anotasi pod pengirim pekerjaan, dengan kunci annotationKey dan nilai sebagai nilai konfigurasi. Untuk menambahkan beberapa anotasi, atur beberapa konfigurasi dengan awalan ini.

jobsubmitter.node.toleration.[tolerationKey]

Menambahkan toleransi ke pod pengirim pekerjaan. Secara default tidak ada toleransi yang ditambahkan ke pod. Kunci toleransi akan menjadi tolerationKey dan nilai toleransi akan menjadi nilai konfigurasi. Jika nilai konfigurasi diatur ke string yang tidak kosong, operator akan menjadiEquals. Jika nilai konfigurasi diatur ke"", maka operator akanExists.

jobsubmitter.node.toleration.[tolerationKey].[effect]

Menambahkan efek toleransi ke awalantolerationKey. Bidang ini diperlukan saat menambahkan toleransi. Nilai yang diizinkan untuk bidang efek adalah NoExecute,NoSchedule, danPreferNoSchedule.

jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds]

Menambahkan TolerationSeconds ke awalan. tolerationKey Bidang opsional. Hanya berlaku ketika efeknyaNoExecute.

jobsubmitter.scheduler.name

Menetapkan schedulerName kustom untuk pod pengirim pekerjaan.

jobsubmitter.logging

Mengaktifkan atau menonaktifkan logging pada pod pengirim pekerjaan. Ketika ini disetel ke DISABLED container logging akan dihapus dari pod pengirim pekerjaan, yang akan menonaktifkan setiap logging untuk pod ini yang ditentukan dalammonitoringConfiguration, seperti s3MonitoringConfiguration or. cloudWatchMonitoringConfiguration Ketika pengaturan ini tidak disetel atau disetel ke nilai lain, logging pada pod pengirim pekerjaan diaktifkan.

jobsubmitter.logging.image

Menetapkan gambar kustom yang akan digunakan untuk penampung logging pada pod pengirim pekerjaan.

jobsubmitter.logging.request.cores

Menetapkan nilai kustom untuk jumlah CPUs, dalam unit CPU, untuk penampung logging pada pod pengirim pekerjaan. Secara default, ini diatur ke 100m.

jobsubmitter.logging.request.memory

Menetapkan nilai kustom untuk jumlah memori, dalam byte, untuk penampung logging pada pod pengirim pekerjaan. Secara default, ini diatur ke 200Mi. Mebibyte adalah satuan ukuran yang mirip dengan megabyte.

jobsubmitter.container.image

Menetapkan image kustom untuk container pod job submitter. job-runner

jobsubmitter.container.image.pullPolicy

Menetapkan imagePullPolicycontainer untuk job submitter pod.

Kami merekomendasikan untuk menempatkan pod pengirim pekerjaan pada Instans Sesuai Permintaan. Menempatkan pod pengirim pekerjaan pada instans Spot dapat mengakibatkan kegagalan pekerjaan jika instance tempat pod pengirim pekerjaan berjalan tunduk pada interupsi Instance Spot. Kamu juga bisa menempatkan job submitter pod dalam Availability Zone tunggal atau menggunakan label Kubernetes yang diterapkan pada node.

Contoh klasifikasi pengirim pekerjaan

StartJobRunpermintaan dengan penempatan node On-Demand untuk pod pengirim pekerjaan

cat >spark-python-in-s3-nodeselector-job-submitter.json << EOF { "name": "spark-python-in-s3-nodeselector", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py", "sparkSubmitParameters": "--conf spark.driver.cores=5 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false" } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.eks.amazonaws.com/capacityType": "ON_DEMAND" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } } EOF aws emr-containers start-job-run --cli-input-json file:///spark-python-in-s3-nodeselector-job-submitter.json

StartJobRunrequest dengan penempatan node single-AZ dan penempatan tipe instans Amazon EC2 untuk pod pengirim pekerjaan

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge" } } ] }

StartJobRunpermintaan dengan label, anotasi, dan penjadwal khusus untuk pod pengirim pekerjaan

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.label.label1": "value1", "jobsubmitter.label.label2": "value2", "jobsubmitter.annotation.ann1": "value1", "jobsubmitter.annotation.ann2": "value2", "jobsubmitter.scheduler.name": "custom-scheduler" } } ] }

StartJobRunpermintaan dengan toleransi yang diterapkan pada pod pengirim pekerjaan dengan kuncidedicated, nilai, efek graviton_machinesNoExecute, dan 60 detik tolerationSeconds

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.toleration.dedicated":"graviton_machines", "jobsubmitter.node.toleration.dedicated.effect":"NoExecute", "jobsubmitter.node.toleration.dedicated.tolerationSeconds":"60" } } ] }

StartJobRunpermintaan dengan logging dinonaktifkan untuk pod pengirim pekerjaan

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunpermintaan dengan image container logging kustom, CPU, dan memori untuk pod pengirim pekerjaan

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging.image": "YOUR_ECR_IMAGE_URL", "jobsubmitter.logging.request.memory": "200Mi", "jobsubmitter.logging.request.cores": "0.5" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunpermintaan dengan gambar kontainer pengirim pekerjaan khusus dan kebijakan tarik

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.container.image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/emr6.11_custom_repo", "jobsubmitter.container.image.pullPolicy": "kubernetes pull policy" } } ] }