Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gambaran Umum
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 untuk pod pengirim pekerjaan Anda, serta mengatur image, CPU, dan memori untuk container logging pod job submitter.
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 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.
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
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 image container 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"
}
}
}
}