我有一个非常基本的问题,正在尝试寻找答案。我正在查看文档以了解在映射阶段、洗牌阶段和减少阶段数据溢出到哪里?就像如果映射器 A 有 16 GB RAM,但如果为映射器分配的内存超出,则数据会溢出。
数据是否会溢出到 HDFS 还是会溢出到磁盘上的 tmp 文件夹? 在shuffle阶段,数据从一个节点流式传输到另一个节点,并存储在HDFS或临时存储位置。
我问这些问题的原因是想弄清楚工作完成后是否需要进行清理过程。请帮忙。
最佳答案
Mapper的中间文件(溢出文件)存储在运行Mapper的工作节点的本地文件系统中。类似地,从一个节点流式传输到另一节点的数据存储在运行任务的工作节点的本地文件系统中。
此本地文件系统路径由 hadoop.tmp.dir
属性指定,默认情况下为“/tmp”。
作业完成或失败后,本地文件系统上使用的临时位置将自动清除,您无需执行任何清理过程,它由框架自动处理。
关于java - MapReduce 期间的磁盘溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262194/