Hadoop 从S3读取超过500GB的数据并将400GB的输出保存到S3是一个好主意吗?
我的MR任务从AWS S3读取500GB的数据,同时将中间数据保存在S3中,并将减速机的输出(大约400GB)写入S3,这是一个好的设计吗Hadoop 从S3读取超过500GB的数据并将400GB的输出保存到S3是一个好主意吗?,hadoop,amazon-web-services,amazon-s3,hadoop2,aws-opsworks,Hadoop,Amazon Web Services,Amazon S3,Hadoop2,Aws Opsworks,我的MR任务从AWS S3读取500GB的数据,同时将中间数据保存在S3中,并将减速机的输出(大约400GB)写入S3,这是一个好的设计吗 还有其他更便宜、更稳定的解决方案吗?谢谢大家! HDFS上的map reduce设计用于获取输入并执行少量操作,然后写入。因为它是并行完成的,所以设计并不像你想象的那么糟糕。你能不能更详细一点,便宜一点,稳定一点。HDFS绝对是稳定的。HDFS上的map reduce设计用于获取输入并执行少量操作,然后写入。因为它是并行完成的,所以设计并不像你想象的那么糟糕
还有其他更便宜、更稳定的解决方案吗?谢谢大家! HDFS上的map reduce设计用于获取输入并执行少量操作,然后写入。因为它是并行完成的,所以设计并不像你想象的那么糟糕。你能不能更详细一点,便宜一点,稳定一点。HDFS绝对是稳定的。HDFS上的map reduce设计用于获取输入并执行少量操作,然后写入。因为它是并行完成的,所以设计并不像你想象的那么糟糕。你能不能更详细一点,便宜一点,稳定一点。HDFS绝对稳定。我们的ETL作业在AWS中运行。我们使用Oozie进行工作流管理 在EMR(Elastic MapReduce)内部运行时,您可以选择写入
s3
或本地HDFS
将数据存储在s3
或HDFS
中的决定取决于各种因素,如:
- 数据的性质:临时(使用
)或永久(使用HDFS
)s3
- 成本:存储在
中需要花费几美分/美元s3
- 带宽:当您将数据上传到
时,您会消耗一些带宽,AWS会为此向您收费s3
- 限制:到
的上传/下载被限制。如果您在短时间内上载/下载了太多数据,则某些请求可能会失败。我记得在我们的一个工作流程中提到了这个问题s3
- 作业效率:在本地
中存储数据比在HDFS
中存储数据快。因此,如果希望作业运行更快,最好将结果存储在s3
HDFS
HDFS
中,并在使用后删除数据(这样您就不会在HDFS
中耗尽空间)HDFS
中。否则直接将输出写入s3
s3
中,这样在集群停机时不会丢失数据由于本地HDFS中的空间很容易耗尽,因此需要规划HDFS集群的容量。此处的AWS链接提供了计算HDFS容量并相应确定EMR集群大小的指南。我们的ETL作业在AWS中运行。我们使用Oozie进行工作流管理 在EMR(Elastic MapReduce)内部运行时,您可以选择写入
s3
或本地HDFS
将数据存储在s3
或HDFS
中的决定取决于各种因素,如:
- 数据的性质:临时(使用
)或永久(使用HDFS
)s3
- 成本:存储在
中需要花费几美分/美元s3
- 带宽:当您将数据上传到
时,您会消耗一些带宽,AWS会为此向您收费s3
- 限制:到
的上传/下载被限制。如果您在短时间内上载/下载了太多数据,则某些请求可能会失败。我记得在我们的一个工作流程中提到了这个问题s3
- 作业效率:在本地
中存储数据比在HDFS
中存储数据快。因此,如果希望作业运行更快,最好将结果存储在s3
HDFS
HDFS
中,并在使用后删除数据(这样您就不会在HDFS
中耗尽空间)HDFS
中。否则直接将输出写入s3
s3
中,这样在集群停机时不会丢失数据由于本地HDFS中的空间很容易耗尽,因此需要规划HDFS集群的容量。此处的AWS链接提供了计算HDFS容量并相应确定EMR群集大小的指南。您所说的“它将中间数据保存在S3中”是什么意思?映射器和还原器之间的数据通常保存在本地文件系统上(我相信)——您是如何将其配置为保存在S3上的?您所说的“它将中间数据保存在S3中”是什么意思?映射器和还原器之间的数据通常保存在本地文件系统上(我相信)--您是如何将其配置为保存在S3上的?嗨,Manjunath,谢谢您的回复。我正在考虑将输出存储在
localhdfs
上,然后通过awss3
命令将输出推送到S3。但我担心EMR上的本地HDF可能没有足够的空间来保存这么多数据,因为它用于同时运行MR作业。请您谈谈您是如何将数据存储在本地HDF中的?非常感谢。我已经更新了答案。对我同意在HDFS中存储可能会导致空间限制。这就是为什么在我的生活中