シャッフル最適化ディスクの使用 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

シャッフル最適化ディスクの使用

Amazon EMRリリース 7.1.0 以降では、Apache Spark または Hive ジョブを実行するときにシャッフル最適化ディスクを使用して、I/O 集約型ワークロードのパフォーマンスを向上させることができます。標準ディスクと比較して、シャッフル最適化ディスクは、シャッフル操作中のデータ移動を高速化し、レイテンシーを短縮するために、より高い IOPS (1 秒あたりの I/O 操作) を提供します。シャッフル最適化ディスクを使用すると、ワーカーごとに最大 2 TB のディスクサイズをアタッチできるため、ワークロード要件に適した容量を設定できます。

主な利点

シャッフル最適化ディスクには、次の利点があります。

  • ハイIOPSパフォーマンス — シャッフル最適化ディスクは標準ディスクIOPSよりも高いディスクを提供するため、Spark および Hive ジョブやその他のシャッフル集約型のワークロード中に、より効率的で迅速なデータシャッフルが可能になります。

  • より大きなディスクサイズ – シャッフル最適化ディスクは、ワーカーごとに 20GB から 2TB のディスクサイズをサポートしているため、ワークロードに基づいて適切な容量を選択できます。

使用開始

ワークフローでシャッフル最適化ディスクを使用するには、次のステップを参照してください。

Spark
  1. 次のコマンドを使用して、EMRサーバーレスリリース 7.1.0 アプリケーションを作成します。

    aws emr-serverless create-application \ --type "SPARK" \ --name my-application-name \ --release-label emr-7.1.0 \ --region <AWS_REGION>
  2. パラメータを含めたりspark.emr-serverless.driver.disk.type、シャッフル最適化ディスクで実行したりspark.emr-serverless.executor.disk.typeするように Spark ジョブを設定します。ユースケースに応じて、一方または両方のパラメータを使用できます。

    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" } }'

    詳細については、「Spark ジョブのプロパティ」を参照してください。

Hive
  1. 次のコマンドを使用して、EMRサーバーレスリリース 7.1.0 アプリケーションを作成します。

    aws emr-serverless create-application \ --type "HIVE" \ --name my-application-name \ --release-label emr-7.1.0 \ --region <AWS_REGION>
  2. パラメータを含めたりhive.driver.disk.type、シャッフル最適化ディスクで実行したりhive.tez.disk.typeするように Hive ジョブを設定します。ユースケースに応じて、一方または両方のパラメータを使用できます。

    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" } }] }'

    詳細については、Hive ジョブのプロパティ を参照してください。

事前に初期化された容量でアプリケーションを設定する

Amazon EMRリリース 7.1.0 に基づいてアプリケーションを作成するには、次の例を参照してください。これらのアプリケーションには、次のプロパティがあります。

  • 事前に初期化された 5 つの Spark ドライバー。それぞれに 2 v CPU、4 GB のメモリ、50 GB のシャッフル最適化ディスクが搭載されています。

  • 事前に初期化されたエグゼキュター 50 個。それぞれに 4 vCPU、8 GB のメモリ、500 GB のシャッフル最適化ディスクが付属しています。

このアプリケーションが Spark ジョブを実行すると、まず事前に初期化されたワーカーを消費し、次にオンデマンドワーカーを最大容量の 400 vCPU と 1024 GB のメモリまでスケーリングします。オプションで、 DRIVERまたは の容量を省略できます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" }'