2012-11-29 5 views
5

Wenn Sie eine externe Tabelle in Hive (auf Hadoop) mit einer Amazon S3 Quellenort erstellen, sind die an den lokalen Hadoop HDFS übertrugen Daten über:Wenn Sie eine externe Tabelle in Hive mit einem S3-Speicherort erstellen, werden die Daten übertragen?

  • externe Tabellenerstellung
  • wenn dert (MR Jobs) ist auf der externen Tabelle laufen
  • nie (keine Daten werden jemals übertragen) und MR-Jobs lesen S3-Daten.

Welche Kosten entstehen hier für S3-Lesevorgänge? Gibt es eine einzige Kosten für die Übertragung von Daten zu HDFS oder gibt es keine Datenübertragungskosten, aber wenn der von Hive erstellte MapReduce-Job auf dieser externen Tabelle ausgeführt wird, entstehen die Lesekosten.

Ein Beispiel wäre externe Tabellendefinition sein: auf die Daten zugreifen

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

(vorausgesetzt, Sie meinen finanzielle Kosten) Ich glaube nicht, dass Sie für Transfers zwischen S3 und EC2 innerhalb derselben AWS-Region berechnet werden http://aws.amazon.com/s3/pricing/ –

Antwort

4

Kartenaufgaben lesen die Daten direkt von S3. Zwischen den Schritten "Map" und "Reduce" werden Daten in das lokale Dateisystem geschrieben, und zwischen Mapreduce-Jobs (in Abfragen, die mehrere Jobs erfordern) werden die temporären Daten in HDFS geschrieben.

Wenn Sie Bedenken hinsichtlich der Kosten für das Lesen von S3 haben, kann es sinnvoll sein, eine andere Tabelle auf HDFS zu erstellen und eine einmalige Kopie von der S3-Tabelle in die HDFS-Tabelle zu kopieren.

2

Die Daten werden übertragen auf Ihre hadoop Knoten, wenn Abfragen (MR Jobs).
Erstellen Sie nur eine externe Tabelle, ändern Sie die Hive-Metadaten und verschieben Sie niemals tatsächliche Daten.

Verwandte Themen