当使用S3存储桶作为输入源来装箱新的EMR作业时,数据会自动从S3复制到节点上的HDFS吗?或者数据是否仅保留在S3中并在需要时通过map reduce作业进行读取?
我得到的印象是后者;但如果数据存储在S3中并且在配置的EC2实例上完成处理,这是否违反了map reduce的基本原则:对数据进行本地处理?与更传统的系统相反:将数据移动到处理的位置。
在给定合理的大数据集(例如1PB,例如1PB)的情况下,这种方法的相对含义是什么?集群开始需要更长的时间吗?
答案 0 :(得分:0)
你有两种选择。您可以直接从Amazon S3流式传输数据,或者先将其复制到HDFS,然后在本地处理。如果您只打算一次读取数据,第一种方法就是好的。如果您的计划是多次查询相同的输入数据,那么您可能希望先将其复制到HDFS。
是的,通过使用S3作为MapReduce的输入,您将失去数据局部优化。此外,如果您的计划是使用S3作为HDFS的替代品,我建议您使用S3 Block FileSystem
代替S3 Native FileSystem
,因为它会对文件大小施加5GB的限制。
HTH