Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan disk yang dioptimalkan dengan shuffle
Dengan Amazon EMR merilis 7.1.0 dan yang lebih tinggi, Anda dapat menggunakan disk yang dioptimalkan secara acak saat menjalankan pekerjaan Apache Spark atau Hive untuk meningkatkan kinerja beban kerja intensif I/O. Dibandingkan dengan disk standar, disk yang dioptimalkan dengan shuffle memberikan lebih tinggi IOPS (operasi I/O per detik) untuk pergerakan data yang lebih cepat dan mengurangi latensi selama operasi shuffle. Disk yang dioptimalkan dengan shuffle memungkinkan Anda melampirkan ukuran disk hingga 2 TB per pekerja, sehingga Anda dapat mengonfigurasi kapasitas yang sesuai untuk kebutuhan beban kerja Anda.
Manfaat utama
Disk yang dioptimalkan dengan shuffle memberikan manfaat berikut.
-
IOPSKinerja tinggi - disk yang dioptimalkan dengan shuffle memberikan disk yang IOPS lebih tinggi dari disk standar, yang mengarah ke pengocokan data yang lebih efisien dan cepat selama pekerjaan Spark and Hive dan beban kerja intensif acak lainnya.
-
Ukuran disk yang lebih besar - Disk yang dioptimalkan dengan shuffle mendukung ukuran disk dari 20GB hingga 2TB per pekerja, sehingga Anda dapat memilih kapasitas yang sesuai berdasarkan beban kerja Anda.
Memulai
Lihat langkah-langkah berikut untuk menggunakan disk yang dioptimalkan secara acak di alur kerja Anda.
- Spark
-
-
Buat aplikasi rilis 7.1.0 EMR Tanpa Server dengan perintah berikut.
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Konfigurasikan pekerjaan Spark Anda untuk menyertakan parameter spark.emr-serverless.driver.disk.type
dan/atau spark.emr-serverless.executor.disk.type
untuk dijalankan dengan disk yang dioptimalkan secara acak. Anda dapat menggunakan salah satu atau kedua parameter, tergantung pada kasus penggunaan Anda.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"sparkSubmit": {
"entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar",
"entryPointArguments": ["1"],
"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi
--conf spark.executor.cores=4
--conf spark.executor.memory=20g
--conf spark.driver.cores=4
--conf spark.driver.memory=8g
--conf spark.executor.instances=1
--conf spark.emr-serverless.executor.disk.type=shuffle_optimized"
}
}'
Untuk informasi selengkapnya, lihat Properti pekerjaan Spark.
- Hive
-
-
Buat aplikasi rilis 7.1.0 EMR Tanpa Server dengan perintah berikut.
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Konfigurasikan pekerjaan Hive Anda untuk menyertakan parameter hive.driver.disk.type
dan/atau hive.tez.disk.type
untuk dijalankan dengan disk yang dioptimalkan acak. Anda dapat menggunakan salah satu atau kedua parameter, tergantung pada kasus penggunaan Anda.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"hive": {
"query": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/query/hive-query.ql",
"parameters": "--hiveconf hive.log.explain.output=false"
}
}' \
--configuration-overrides '{
"applicationConfiguration": [{
"classification": "hive-site",
"properties": {
"hive.exec.scratchdir": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/hive/scratch",
"hive.metastore.warehouse.dir": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/hive/warehouse",
"hive.driver.cores": "2",
"hive.driver.memory": "4g",
"hive.tez.container.size": "4096",
"hive.tez.cpu.vcores": "1",
"hive.driver.disk.type": "shuffle_optimized",
"hive.tez.disk.type": "shuffle_optimized"
}
}]
}'
Untuk informasi lebih lanjut, properti pekerjaan Hive.
Mengkonfigurasi aplikasi dengan kapasitas pra-inisialisasi
Lihat contoh berikut untuk membuat aplikasi berdasarkan Amazon EMR rilis 7.1.0. Aplikasi ini memiliki properti berikut:
-
5 driver Spark pra-inisialisasi, masing-masing dengan 2 v, 4 GB memoriCPU, dan 50 GB disk yang dioptimalkan shuffle.
-
50 eksekutor pra-inisialisasi, masing-masing dengan 4 v, 8 GB memoriCPU, dan 500 GB disk yang dioptimalkan shuffle.
Ketika aplikasi ini menjalankan pekerjaan Spark, pertama-tama ia mengkonsumsi pekerja pra-inisialisasi dan kemudian menskalakan pekerja sesuai permintaan hingga kapasitas maksimum 400 v CPU dan 1024 GB memori. Secara opsional, Anda dapat menghilangkan kapasitas untuk salah satu atauDRIVER
. EXECUTOR
- Spark
-
aws emr-serverless create-application \
--type "SPARK" \
--name <my-application-name>
\
--release-label emr-7.1.0 \
--initial-capacity '{
"DRIVER": {
"workerCount": 5,
"workerConfiguration": {
"cpu": "2vCPU",
"memory": "4GB",
"disk": "50GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
},
"EXECUTOR": {
"workerCount": 50,
"workerConfiguration": {
"cpu": "4vCPU",
"memory": "8GB",
"disk": "500GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
}
}' \
--maximum-capacity '{
"cpu": "400vCPU",
"memory": "1024GB"
}'
- Hive
-
aws emr-serverless create-application \
--type "HIVE" \
--name <my-application-name>
\
--release-label emr-7.1.0 \
--initial-capacity '{
"DRIVER": {
"workerCount": 5,
"workerConfiguration": {
"cpu": "2vCPU",
"memory": "4GB",
"disk": "50GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
},
"EXECUTOR": {
"workerCount": 50,
"workerConfiguration": {
"cpu": "4vCPU",
"memory": "8GB",
"disk": "500GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
}
}' \
--maximum-capacity '{
"cpu": "400vCPU",
"memory": "1024GB"
}'