Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan klasifikasi pengirim pekerjaan
Gambaran Umum
Amazon EMR berdasarkan EKS StartJobRun
permintaan 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 untuk pod pengirim pekerjaan Anda, serta mengatur gambar,CPU, dan memori untuk wadah logging pod pengirim pekerjaan.
Pengaturan berikut tersedia di bawah emr-job-submitter
klasifikasi:
jobsubmitter.node.selector.[
labelKey
]-
Menambahkan pemilih node dari pod pengirim pekerjaan, dengan kunci
dan nilai sebagai nilai konfigurasi untuk konfigurasi. Misalnya, Anda dapat mengaturlabelKey
jobsubmitter.node.selector.identifier
kemyIdentifier
dan pod pengirim pekerjaan akan memiliki pemilih node dengan nilai pengenal kunci.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.logging.image
-
Menetapkan gambar kustom yang akan digunakan untuk penampung logging pada pod pengirim pekerjaan.
jobsubmitter.logging.request.cores
-
Menetapkan nilai kustom untuk jumlahCPUs, dalam CPU unit, 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.
Kami merekomendasikan untuk menempatkan pod pengirim pekerjaan pada Instans Sesuai Permintaan. Menempatkan pod pengirim pekerjaan pada instance 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
Dalam bagian ini
- StartJobRunpermintaan dengan penempatan node On-Demand untuk pod pengirim pekerjaan
- StartJobRunpermintaan dengan penempatan node single-AZ untuk pod pengirim pekerjaan
- StartJobRunpermintaan dengan penempatan tipe EC2 instans AZ dan Amazon tunggal untuk pod pengirim pekerjaan
- StartJobRunpermintaan dengan gambar wadah logging kustom,CPU, dan memori
StartJobRun
permintaan 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
StartJobRun
permintaan dengan penempatan node single-AZ untuk pod pengirim pekerjaan
cat >spark-python-in-s3-nodeselector-job-submitter-az.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.topology.kubernetes.io/zone": "Availability Zone
" } } ], "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-az.json
StartJobRun
permintaan dengan penempatan tipe EC2 instans AZ dan Amazon tunggal untuk pod pengirim pekerjaan
{ "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.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6 --conf spark.sql.shuffle.partitions=1000" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false", } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone
", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge
" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } }
StartJobRun
permintaan dengan gambar wadah logging kustom,CPU, dan memori
{ "name": "spark-python", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py" } }, "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" } } } }