

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

# EMR Serverless を使用して S3 Express One Zone にデータを取得する
<a name="upload-data"></a>

Amazon EMR リリース 7.2.0 以降では、[Amazon S3 Express One Zone ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html)ストレージクラスで EMR Serverless を使用して、ジョブとワークロードを実行する際のパフォーマンスが向上します。S3 Express One Zone は、最もレイテンシーの影響を受けやすいアプリケーションに 1 桁のミリ秒単位で一貫したデータアクセスを提供する、高パフォーマンスの単一ゾーンの Amazon S3 ストレージクラスです。リリース時点で、S3 Express One Zone は、Amazon S3 の中でレイテンシーが最も低く、パフォーマンスの最も高いクラウドオブジェクトストレージを提供しています。

## 前提条件
<a name="upload-data-prereqs"></a>
+ S3 Express One Zone のアクセス許可 - S3 Express One Zone が S3 オブジェクトに対して `GET`、`LIST`、`PUT` などのアクションを最初に実行すると、ストレージクラスがユーザーに代わって `CreateSession` を呼び出します。S3A コネクタが `CreateSession` API を呼び出せるように、お使いの IAM ポリシーで `s3express:CreateSession` アクセス許可を付与する必要があります。このアクセス許可ポリシーの例については、「[S3 Express One Zone の使用を開始する](#upload-data-get-started)」を参照してください。
+ S3A コネクタ - S3 Express One Zone ストレージクラスを使用する Amazon S3 バケットのデータにアクセスするように Spark クラスターを設定するには、Apache Hadoop コネクタ S3A を使用します。コネクタを使用するには、すべての S3 URI が `s3a` スキームを使用していることを確認してください。使用していない場合は、`s3` スキームと `s3n` スキーム用にファイルシステム実装を変更します。

`s3` スキームを変更するには、以下のクラスター設定を指定します。

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

`s3n` スキームを変更するには、以下のクラスター設定を指定します。

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

## S3 Express One Zone の使用を開始する
<a name="upload-data-get-started"></a>

S3 Express One Zone の使用を開始するには、次の手順に従います。

1. [VPC エンドポイントを作成します](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。エンドポイント ` com.amazonaws.us-west-2.s3express` を VPC エンドポイントに追加します。

1. 「[Amazon EMR Serverless の使用を開始する](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html)」に従って、Amazon EMR リリースラベル 7.2.0 以降でアプリケーションを作成します。

1. 新しく作成された VPC エンドポイント、プライベートサブネットグループ、セキュリティグループを使用するように[アプリケーションを設定します](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/vpc-access.html)。

1. `CreateSession` アクセス許可をジョブの実行ロールに追加します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Resource": [
           "*"
         ],
         "Action": [
           "s3express:CreateSession"
         ],
         "Sid": "AllowS3EXPRESSCreatesession"
       }
     ]
   }
   ```

------

1. ジョブを実行します。S3 Express One Zone バケットにアクセスするには、`S3A` スキームを使用します。

   ```
   aws emr-serverless start-job-run \      
   --application-id <application-id> \          
   --execution-role-arn <job-role-arn> \
   --name <job-run-name> \
   --job-driver '{
    "sparkSubmit": {                                                                                                                                                                                      
    "entryPoint": "s3a://<DOC-EXAMPLE-BUCKET>/scripts/wordcount.py", 
    "entryPointArguments":["s3a://<DOC-EXAMPLE-BUCKET>/emr-serverless-spark/output"],
    "sparkSubmitParameters": "--conf spark.executor.cores=4 
    --conf spark.executor.memory=8g --conf spark.driver.cores=4 
    --conf spark.driver.memory=8g --conf spark.executor.instances=2 
    --conf spark.hadoop.fs.s3a.change.detection.mode=none 
    --conf spark.hadoop.fs.s3a.endpoint.region={<AWS_REGION>}
    --conf spark.hadoop.fs.s3a.select.enabled=false 
    --conf spark.sql.sources.fastS3PartitionDiscovery.enabled=false 
    }'
   ```