

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

# シャッフル最適化ディスクの使用
<a name="jobs-shuffle-optimized-disks"></a>

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

## 主な利点
<a name="jobs-shuffle-optimized-disks-key-benefits"></a>

シャッフル最適化ディスクには以下の利点があります。
+ **高い IOPS パフォーマンス** – シャッフル最適化ディスクは、標準ディスクよりも高い IOPS を実現し、Spark ジョブや Hive ジョブなどのシャッフル集約型ワークロードでデータシャッフルをより効率的かつ迅速に行うことができます。
+ **より大きなディスクサイズ** – シャッフル最適化ディスクは、ワーカーあたり 20 GB から 2 TB のディスクサイズをサポートしているため、ワークロードに基づいて適切な容量を選択でします。

## 開始方法
<a name="jobs-shuffle-optimized-disks-getting-started"></a>

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

------
#### [ Spark ]

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

   ```
   aws emr-serverless create-application \
     --type "SPARK" \
     --name my-application-name \
     --release-label emr-7.1.0 \
     --region <AWS_REGION>
   ```

1. パラメータ `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 ジョブのプロパティ](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults)」を参照してください。

------
#### [ Hive ]

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

   ```
   aws emr-serverless create-application \
     --type "HIVE" \
     --name my-application-name \
     --release-label emr-7.1.0 \
     --region <AWS_REGION>
   ```

1. パラメータ `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 ジョブプロパティ](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-hive.html#hive-defaults)」を参照してください。

------

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

Amazon EMR リリース 7.1.0 に基づいてアプリケーションを作成するには、次の例を参照してください。これらのアプリケーションには、次のプロパティがあります。
+ 5 台の事前に初期化された Spark ドライバー。それぞれ 2 つの vCPU、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"
  }'
```

------