기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
복원된 객체 읽기
Amazon EMR 릴리스 7.2.0 이상에서는 S3A
프로토콜을 사용하여 테이블의 S3 위치에서 복원된 Glacier 객체를 읽을 수 있습니다. 이전 릴리스의 엔진은 Glacier와 Glacier Deep Archive 파일을 구분하지 않습니다. 즉, S3A
를 사용하여 진행 중인 Glacier 파일에 액세스하려고 하면 AmazonS3Exception
이 발생합니다. 이 읽기 작업은 아카이브된 Glacier 파일이 여전히 복원 중인 경우 해당 파일을 무시합니다. 이 동작을 활성화하려면 fs.s3a.glacier.read.restored.objects
설정을 사용합니다. 이 설정은 세 가지 값일 수 있습니다.
-
READ_ALL – 이 값은 Amazon EMR이 Amazon S3에서 검색된 스토리지 클래스를 고려하지 않아야 함을 나타냅니다. 이는 기본 설정 동작입니다.
-
SKIP_ALL_GLACIER – 이 값은 Amazon EMR이 Glacier 스토리지 클래스로 태그가 지정된 모든 S3 객체를 무시하고 다른 모든 객체를 검색해야 함을 나타냅니다. 이는 Glacier 객체와 관련된 Amazon Athena의 기본 동작입니다.
-
READ_RESTORED_GLACIER_OBJECTS – 이 값은 Amazon EMR이 Glacier 객체의 복원된 상태를 확인해야 함을 나타냅니다. Amazon EMR이 객체를 복원할 수 있는 경우 일반 S3 객체처럼 읽을 수 있습니다. 그렇지 않으면 Amazon EMR은 S3 Glacier의 객체를 무시합니다.
예시
Spark
Spark를 사용하는 경우 복원된 객체를 읽으려면 다음 구성을 사용합니다.
--conf spark.hadoop.fs.s3a.glacier.read.restored.objects=
<value>
spark-sql을 사용하는 경우 대신 다음 구성을 사용합니다.
spark-sql --conf spark.hadoop.fs.s3a.glacier.read.restored.objects=
<value>
Flink
Flink를 사용하는 경우 flink-conf.yaml
파일에서 구성을 설정할 수 있습니다.
fs.s3a.glacier.read.restored.objects:
<value>
flink-conf
분류를 설정할 수도 있습니다.
[ { "Classification": "flink-conf", "Properties": { "fs.s3a.glacier.read.restored.objects":"<value>" } } ]
Hive
Hive를 사용하는 경우 hive-site.xml
파일에서 구성을 설정합니다.
<property> <name>fs.s3a.glacier.read.restored.objects</name> <value>
<value>
</value> </property>
또한 Hive CLI를 사용하여 --hiveconf
속성을 설정할 수도 있습니다.
hive --hiveconf fs.s3a.glacier.read.restored.objects=
<value>
고려 사항
S3 Glacier에서 복원된 객체를 읽을 때 다음 고려 사항에 유의합니다.
-
S3A
스키마 또는S3AFileSystem
을 사용하여 데이터에 액세스하는 경우에만 복원된 객체를 읽을 수 있습니다. -
복원된 Glacier 객체를 읽는 경우 Amazon EMR은 객체 자체를 복원하지 않습니다. 이렇게 하려면 AWS CLI 또는 AWS SDK를 사용해야 합니다.