Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 map reduce如何在HDFS和S3上工作?_Amazon S3_Mapreduce_Hdfs_Bigdata_Emr - Fatal编程技术网

Amazon s3 map reduce如何在HDFS和S3上工作?

Amazon s3 map reduce如何在HDFS和S3上工作?,amazon-s3,mapreduce,hdfs,bigdata,emr,Amazon S3,Mapreduce,Hdfs,Bigdata,Emr,我一直在试图理解在HDFS和S3上执行map reduce作业有多么不同。请有人回答我的问题: 通常,HDFS集群不仅面向存储,还包含执行MR作业的马力;这就是为什么作业被映射到多个数据节点上,并在几个节点上减少。确切地说,映射(过滤等)是在本地数据上完成的,而缩减(聚合)是在公共节点上完成的 这种方法是否像在S3上一样有效?据我所知,S3只是一个数据存储。hadoop是否必须从S3复制整个数据,然后在本地运行Map(filter)和reduce(aggregation)?或者它遵循与HDFS完

我一直在试图理解在HDFS和S3上执行map reduce作业有多么不同。请有人回答我的问题:

通常,HDFS集群不仅面向存储,还包含执行MR作业的马力;这就是为什么作业被映射到多个数据节点上,并在几个节点上减少。确切地说,映射(过滤等)是在本地数据上完成的,而缩减(聚合)是在公共节点上完成的

这种方法是否像在S3上一样有效?据我所知,S3只是一个数据存储。hadoop是否必须从S3复制整个数据,然后在本地运行Map(filter)和reduce(aggregation)?或者它遵循与HDFS完全相同的方法。如果前一种情况是真的,那么在S3上运行作业可能比在HDFS上运行作业慢(由于复制开销)


请分享您的想法。

如果您在EC2中有一个Hadoop集群,并且您在S3数据上运行MapReduce作业,那么数据将流式传输到集群中以运行作业。正如您所说,S3只是一个数据存储,因此您无法将计算带入数据。这些非本地读取可能会导致处理大型作业的瓶颈,具体取决于数据的大小和群集的大小。

S3的性能比HDFS慢,但它提供了其他功能,如bucket版本控制、弹性和其他数据恢复方案(Netflix使用使用S3的Hadoop群集)

理论上,在分割计算之前,需要确定输入文件的大小,因此hadoop本身在S3之上有一个文件系统实现,它允许更高层不知道数据源。Map Reduce针对每个输入目录调用通用文件列表API,以获取目录中所有文件的大小


Amazons EMR有一个特殊版本的S3文件系统,它可以直接将数据流传输到S3,而不是缓冲到中间的本地文件,这可以使它在EMR上更快。

在检查我过去的个人资料时,刚刚看到这个:p