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, gunakan disk yang dioptimalkan secara acak saat Anda menjalankan pekerjaan Apache Spark atau Hive untuk meningkatkan kinerja beban kerja. I/O-intensive Dibandingkan dengan disk standar, disk yang dioptimalkan dengan shuffle memberikan IOPS (I/O operasi per detik) yang lebih tinggi untuk pergerakan data yang lebih cepat dan mengurangi latensi selama operasi shuffle. Shuffle-optimized disk memungkinkan Anda melampirkan ukuran disk hingga 2 TB per pekerja, jadi konfigurasikan kapasitas yang sesuai untuk kebutuhan beban kerja Anda.
Manfaat utama
Shuffle-optimized disk memberikan manfaat berikut.
-
IOPS & throughput tinggi — Shuffle-optimized disk mengungguli disk standar di IOPS dan throughput, menguntungkan I/O-heavy operasi apa pun: pengocokan data, tumpahan disk, tahap pengurutan, dan perwujudan data sementara di seluruh pekerjaan Spark dan Hive.
-
Kinerja disk yang diskalakan — Untuk pekerja besar (8 VCPU+), disk yang dioptimalkan secara acak menghasilkan IOPS dan throughput yang lebih tinggi secara proporsional pada setiap kenaikan 500 GB bila memungkinkan, menjaga kinerja disk tetap sesuai dengan kapasitas komputasi Anda.
-
Ukuran disk yang lebih besar — Shuffle-optimized disk mendukung ukuran disk dari 20GB hingga 2TB per pekerja, jadi pilihlah 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 EMR Serverless rilis 7.1.0 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 yang akan dijalankan dengan spark.emr-serverless.driver.disk.type and/or spark.emr-serverless.executor.disk.type 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 lebih lanjut, lihat Properti pekerjaan Spark.
- Hive
-
-
Buat aplikasi EMR Serverless rilis 7.1.0 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 yang akan dijalankan dengan hive.driver.disk.type and/or hive.tez.disk.type 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 '{
"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 vCPU, memori 4 GB, dan 50 GB disk yang dioptimalkan dengan shuffle.
-
50 eksekutor pra-inisialisasi, masing-masing dengan 4 vCPU, memori 8 GB, dan 500 GB disk yang dioptimalkan secara acak.
Ketika aplikasi ini menjalankan pekerjaan Spark, pertama-tama ia mengkonsumsi pekerja pra-inisialisasi dan kemudian menskalakan pekerja sesuai permintaan hingga kapasitas maksimum 400 vCPU 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"
}'