java - MapReduce 期间的磁盘溢出

标签 java hadoop mapreduce shuffle hadoop-yarn

我有一个非常基本的问题,正在尝试寻找答案。我正在查看文档以了解在映射阶段、洗牌阶段和减少阶段数据溢出到哪里?就像如果映射器 A 有 16 GB RAM,但如果为映射器分配的内存超出,则数据会溢出。

数据是否会溢出到 HDFS 还是会溢出到磁盘上的 tmp 文件夹? 在shuffle阶段,数据从一个节点流式传输到另一个节点,并存储在HDFS或临时存储位置。

我问这些问题的原因是想弄清楚工作完成后是否需要进行清理过程。请帮忙。

最佳答案

Mapper的中间文件(溢出文件)存储在运行Mapper的工作节点的本地文件系统中。类似地,从一个节点流式传输到另一节点的数据存储在运行任务的工作节点的本地文件系统中。

此本地文件系统路径由 hadoop.tmp.dir 属性指定,默认情况下为“/tmp”。

作业完成或失败后,本地文件系统上使用的临时位置将自动清除,您无需执行任何清理过程,它由框架自动处理。

关于java - MapReduce 期间的磁盘溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262194/

相关文章:

java - Apache Tomcat JSP 应用程序的一般强化技巧

hadoop - 从 HIVE 中的 REST API 访问数据

scala - Scala脚本在Spark Shell中创建DF和临时表-问题

hadoop - HBase completebulkload 返回异常

java - 如何在Java中修改Tuple2的值

java - 找不到符号 Menu 和 MenuItem

java - Websphere 上的 Cron 调度程序的 org.springframework.jndi.JndiLookupFailureException

python - z:net.snowflake.spark.snowflake.Utils.runQuery。 :java.lang.NullPointerException

Hadoop MapReduce (Yarn) 使用不同功率/规范的主机

hadoop - 如何使用 marklogic mapreduce 连接器 api 将元数据添加到文档