翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
所有していない Amazon S3 バケットにデータを書き込む方法
Amazon Simple Storage Service (Amazon S3) バケットにファイルを書き込むと、デフォルトではお客様以外はそのファイルを読むことができません。これは、自分専用のバケットにファイルを書き込むことが前提になっており、このデフォルト設定によってファイルのプライバシーを保護しています。
ただし、クラスターを実行し、出力を別の の Amazon S3 バケットに書き込む場合 AWS ユーザー、および他のユーザー AWS ユーザーがその出力を読み取るには、次の 2 つの操作を行う必要があります。
-
もう 1 つ AWS ユーザーは、Amazon S3 バケットの書き込みアクセス許可を付与します。起動するクラスターは、 で実行されます。 AWS 認証情報。起動したクラスターは、他のクラスターにも書き込むことができます。 AWS ユーザーのバケット。
-
他の の読み取りアクセス許可を設定する AWS ユーザーまたはクラスターが Amazon S3 バケットに書き込むファイル上の ユーザー。これらの読み取りアクセス許可を設定する最も簡単な方法は、Amazon S3 で定義された一連の定義済みアクセスポリシーである既定アクセスコントロールリスト (ACLs) を使用することです。 Amazon S3
他の の AWS ユーザーは、他のユーザーの Amazon S3 バケットにファイルを書き込むアクセス許可を付与できます。Amazon Simple Storage Service ユーザーガイドの「バケットのアクセス許可の編集」を参照してください。
クラスターが Amazon S3 にファイルを書き込むACLsときに 既定を使用するには、fs.s3.canned.acl
クラスター設定オプションを 既定ACLに設定して使用します。次の表に、現在定義されている既定 を示しますACLs。
既定 ACL | 説明 |
---|---|
AuthenticatedRead |
所有者には Permission.FullControl が、GroupGrantee.AuthenticatedUsers グループには Permission.Read アクセスが与えられるように指定します。 |
BucketOwnerFullControl |
バケットの所有者に Permission.FullControl が与えられるように指定します。バケットの所有者は、オブジェクトの所有者と同じであるとは限りません。 |
BucketOwnerRead |
バケットの所有者に Permission.Read が与えられるように指定します。バケットの所有者は、オブジェクトの所有者と同じであるとは限りません。 |
LogDeliveryWrite |
アクセスログを作成できるように、所有者には Permission.FullControl が、GroupGrantee.LogDelivery グループには Permission.Write アクセスが与えられるように指定します。 |
Private |
所有者に Permission.FullControl が与えられるように指定します。 |
PublicRead |
所有者には Permission.FullControl が、GroupGrantee.AllUsers グループには Permission.Read アクセスが与えられるように指定します。 |
PublicReadWrite |
所有者には Permission.FullControl が、GroupGrantee.AllUsers グループには Permission.Read および Permission.Write アクセスが与えられるように指定します。 |
クラスターの設定オプションを設定する方法は、実行するクラスターのタイプに応じてさまざまです。以下の手順では、一般的なケースでオプションを設定する方法を示します。
Hive ACLsで既定 を使用してファイルを書き込むには
-
Hive コマンドプロンプトから、
fs.s3.canned.acl
設定オプションを、Amazon S3 に書き込むファイルにACLクラスターを設定する既定に設定します。Hive コマンドプロンプトにアクセスするには、 を使用してマスターノードに接続しSSH、Hadoop コマンドプロンプトで Hive と入力します。詳細については、「を使用してプライマリノードに接続する SSH」を参照してください。次の例では、
fs.s3.canned.acl
設定オプションをBucketOwnerFullControl
に設定することにより、Simple Storage Service (Amazon S3) バケットの所有者に対してファイルの完全なコントロールを許可しています。set コマンドでは大文字と小文字が区別され、引用符やスペースは使用できません。hive> set fs.s3.canned.acl=BucketOwnerFullControl; create table acl (n int) location 's3://acltestbucket/acl/'; insert overwrite table acl select count(*) from acl;
例の最後の 2 行では、Simple Storage Service (Amazon S3) に保存されるテーブルを作成し、そのテーブルにデータを書き込みます。
Pig ACLsで既定 を使用してファイルを書き込むには
-
Pig コマンドプロンプトから、
fs.s3.canned.acl
設定オプションを、Amazon S3 に書き込むファイルにACLクラスターを設定する既定に設定します。Pig コマンドプロンプトにアクセスするには、 を使用してマスターノードに接続しSSH、Hadoop コマンドプロンプトで Pig と入力します。詳細については、「を使用してプライマリノードに接続する SSH」を参照してください。次の例では、
fs.s3.canned.acl
設定オプションを に設定し BucketOwnerFullControl、Amazon S3 バケットの所有者に ファイルに対する完全な制御を許可します。set コマンドには、既定ACL名の前にスペースが 1 つ含まれ、引用符は含まれないことに注意してください。pig> set fs.s3.canned.acl BucketOwnerFullControl; store some data into 's3://acltestbucket/pig/acl';
カスタムACLsで既定 を使用してファイルを書き込むには JAR
-
-D フラグを指定して Hadoop を使用して、
fs.s3.canned.acl
設定オプションを設定します。これを次の例に示します。hadoop jar hadoop-examples.jar wordcount -Dfs.s3.canned.acl=BucketOwnerFullControl s3://mybucket/input s3://mybucket/output