기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EMR Serverless를 사용하여 S3 Express One Zone으로 데이터 가져오기
Amazon EMR 릴리스 7.2.0 이상에서는 작업 및 워크로드를 실행하는 경우 성능 개선을 위해 Amazon S3 Express One Zone 스토리지 클래스와 함께 EMR Serverless를 사용할 수 있습니다. S3 Express One Zone은 대부분의 지연 시간에 민감한 애플리케이션에서 일관되게 10밀리초 미만의 데이터 액세스를 지원하는 고성능 단일 영역 Amazon S3 스토리지 클래스입니다. 릴리스 시점에 S3 Express One Zone은 Amazon S3에서 지연 시간이 가장 낮고 성능은 가장 뛰어난 클라우드 객체 스토리지를 제공합니다.
사전 조건
-
S3 Express One Zone 권한 - S3 Express One Zone이 S3 객체에서
GET
,PUT
또는LIST
과 같은 작업을 처음 수행하면 스토리지 클래스에서 사용자를 대신하여CreateSession
을 직접 호출합니다. S3A 커넥터가CreateSession
API를 간접적으로 호출할 수 있으려면 IAM 정책에서s3express:CreateSession
권한을 허용해야 합니다. 이 권한이 있는 정책 예시는 S3 Express One Zone 시작하기 섹션을 참조하세요. -
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 시작하기
다음 단계를 수행하여 S3 Express One Zone을 시작합니다.
-
VPC 엔드포인트를 생성합니다. VPC 엔드포인트에
com.amazonaws.us-west-2.s3express
엔드포인트를 추가합니다. -
Amazon EMR Serverless 시작하기를 따라 Amazon EMR 릴리스 레이블 7.2.0 이상을 사용하여 애플리케이션을 생성합니다.
-
새로 생성된 VPC 엔드포인트, 프라이빗 서브넷 그룹 및 보안 그룹을 사용하도록 애플리케이션을 구성합니다.
-
작업 실행 역할에 필요한
CreateSession
권한을 추가합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "s3express:CreateSession" ] } ] }
-
작업을 실행합니다. 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 }'