

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

# 復元されたオブジェクトの読み取り
<a name="emr-hadoop-read-restore-objects"></a>

 Amazon EMR リリース 7.2.0 以降では、復元された Glacier オブジェクトを `S3A` プロトコルを使用してテーブルの S3 の場所から読み取ることができます。以前のリリースのエンジンでは Glacier と Glacier Deep Archive ファイルを区別しません。つまり、`S3A` を使用して進行中の Glacier ファイルにアクセスしようとすると、`AmazonS3Exception` を取得します。この読み取りオペレーションでは、アーカイブされた Glacier ファイルが復元中である場合は無視されます。この動作を有効にするには、設定 `fs.s3a.glacier.read.restored.objects` を使用します。この設定は 3 つの値にすることができます。
+ **READ\$1ALL** – この値は、Amazon EMR が Amazon S3 から取得したストレージクラスを考慮すべきでないことを示します。これがデフォルトの動作です。
+ **SKIP\$1ALL\$1GLACIER** – この値は、Amazon EMR が Glacier ストレージクラスでタグ付けされた S3 オブジェクトを無視し、他のすべてのオブジェクトを取得する必要があることを示します。これは、Glacier オブジェクトに関する Amazon EMR のデフォルトの動作です。
+ **READ\$1RESTORED\$1GLACIER\$1OBJECTS** – この値は、Amazon EMR が Glacier オブジェクトの復元されたステータスをチェックする必要があることを示します。Amazon EMR がオブジェクトを復元できる場合は、通常の S3 オブジェクトのように読み取ることができます。それ以外の場合、Amazon EMR は Amazon Glacier からのオブジェクトを無視します

## 例
<a name="emr-hadoop-read-restore-objects-examples"></a>

**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>
```

## 考慮事項
<a name="emr-hadoop-read-restore-objects-considerations"></a>

Amazon Glacier から復元されたオブジェクトを読み取るときは、次の考慮事項に注意してください。
+ 復元されたオブジェクトは、`S3A` スキームまたは `S3AFileSystem` を使用してデータにアクセスする場合にのみ読み取ることができます。
+ 復元された Glacier オブジェクトを読み取ると、Amazon EMR はオブジェクト自体を復元しません。そのためには、 AWS CLI または AWS SDK を使用する必要があります。