7

Amazon S3 ソースの場所を使用して Hive (Hadoop 上) に外部テーブルを作成する場合、データはいつローカルの Hadoop HDFS に転送されますか? オンになっていますか:

  • 外部表の作成
  • 照会 (MR ジョブ) が外部テーブルで実行されるとき
  • never (データが転送されない) および MR ジョブは S3 データを読み取ります。

ここで S3 読み取りにかかるコストはいくらですか? HDFS へのデータ転送に 1 つのコストがかかるのか、それともデータ転送コストはないが、Hive によって作成された MapReduce ジョブがこの外部テーブルで実行されると、読み取りコストが発生するのか。

外部テーブル定義の例は次のとおりです。

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

2 に答える 2

8

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

S3 の読み取りコストが気になる場合は、HDFS に保存される別のテーブルを作成し、S3 テーブルから HDFS テーブルへの 1 回限りのコピーを実行することをお勧めします。

于 2012-11-29T22:46:28.903 に答える
3

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

于 2012-11-29T12:06:30.007 に答える