2012-11-29 28 views
5

當您在海夫(Hadoop的)與Amazon S3的源位置外部表是轉移到當地的Hadoop的HDFS上的數據:當您在Hive中使用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步驟之間,數據將被寫入本地文件系統,並且在mapreduce作業(需要多個作業的查詢中)之間,臨時數據將被寫入HDFS。

如果您關心S3讀取成本,創建存儲在HDFS上的另一個表並執行從S3表到HDFS表的一次性副本可能很有意義。

2

的數據被傳輸到您的hadoop節點時,查詢(MR職位)訪問數據。
創建外部表僅更改Hive元數據,並且不會移動實際數據。

相關問題