使用Amazon S3源位置在Hive(在Hadoop上)创建外部表时,数据将传输到本地Hadoop HDFS:
S3读取的成本是多少?将数据传输到HDFS只需要一个成本,或者没有数据传输成本,但是当Hive创建的MapReduce作业在此外部表上运行时,会产生读取成本。
外部表定义的示例如下:
CREATE EXTERNAL TABLE mydata (key STRING, value INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '='
LOCATION 's3n://mys3bucket/';
答案 0 :(得分:6)
Map任务将直接从S3读取数据。在Map和Reduce步骤之间,数据将被写入本地文件系统,而mapreduce作业(在需要多个作业的查询中)将临时数据写入HDFS。
如果您担心S3读取成本,可能需要创建另一个存储在HDFS上的表,并从S3表到HDFS表进行一次性复制。
答案 1 :(得分:2)
当查询(MR作业)访问数据时,数据将传输到hadoop节点。
创建外部表只会更改Hive元数据,永远不会移动实际数据。