복원된 객체 읽기 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

복원된 객체 읽기

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를 사용해야 합니다.