2012-11-29 1 views
5

あなたがAmazon S3のソースの場所で(Hadoopの上の)ハイブに外部表を作成すると、データがローカルのHadoop HDFSに転送された上:S3の場所で外部テーブルを作成すると、データが転送されますか?

  • 外部表の作成
  • 帖(MRの仕事)があります
  • (データは一度も転送されません)、MRジョブはS3データを読み取ります。

ここでS3読み取りにかかる費用はいくらですか? HDFSへのデータ転送には単価がかかりますか、データ転送コストはありませんが、Hiveによって作成されたMapReduceジョブがこの外部テーブルで実行されると、読み取りコストが発生します。

たとえば、外部表の定義は次のようになります。

CREATE EXTERNAL TABLE mydata (key STRING, value INT) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '=' 
LOCATION 's3n://mys3bucket/'; 
+0

(あなたは財務コストを意味すると仮定します)同じAWS地域内でのS3とEC2の間の転送には料金がかかりませんhttp://aws.amazon.com/s3/pricing/ –

答えて

4

マップタスクは、S3から直接データを読み取ります。 MapとReduceのステップの間に、データはローカルファイルシステムに書き込まれ、複数のジョブを必要とするクエリでは、一時的なデータがHDFSに書き込まれます。

S3の読み取りコストが懸念される場合は、HDFSに格納されている別のテーブルを作成し、S3テーブルからHDFSテーブルにワンタイムコピーを作成するとよいでしょう。

2

クエリ(MRジョブズ)がデータにアクセスする際、データがあなたのHadoopノードに転送されます。
外部テーブルを作成すると、ハイブメタデータのみが変更され、実際のデータは移動しません。

関連する問題