hadoop—当您在配置单元中创建一个带有s3位置的外部表时,数据是否被传输?

kcugc4gi  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(348)

在配置单元(在hadoop上)中使用amazon s3源位置创建外部表时,数据是否传输到本地hadoop hdfs:
外部表创建
当quires(mr jobs)在外部表上运行时
从不(从来没有数据被传输),乔布斯先生读取s3数据。
s3读取的成本是多少?将数据传输到hdfs是否有单一成本,或者没有数据传输成本,但是当配置单元创建的mapreduce作业在此外部表上运行时,会产生读取成本。
外部表定义示例如下:

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

9udxz4iz1#

map任务将直接从s3读取数据。在map和reduce步骤之间,数据将写入本地文件系统,在mapreduce作业之间(在需要多个作业的查询中),临时数据将写入hdfs。
如果您关心s3的读取开销,那么创建另一个存储在hdfs上的表,并将s3表一次性复制到hdfs表可能是有意义的。

fslejnso

fslejnso2#

当查询(mr jobs)访问数据时,数据将传输到hadoop节点。
创建外部表只更改配置单元元数据,从不移动实际数据。

相关问题