View a markdown version of this page

Menggunakan disk yang dioptimalkan dengan shuffle - Amazon EMR

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
  1. 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>
  2. 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
  1. 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>
  2. 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" }'