当map-reduce作业运行时,它必须创建大量临时文件来存储各种映射器和缩减器的结果。这些临时文件是否写入hdfs。
如果是的话,namenode的editlog可能会在很短的时间内变得很大,因为它记录了每个事务,如文件打开,关闭等。可以通过直接写入本机文件系统而不是hdfs来避免这是一个坏主意吗?
答案 0 :(得分:1)
map reduce代码的中间结果已写入本地文件系统而非hdfs,并在作业完成后自动删除。
我的意思是说mapper的输出已写入本地文件系统,可以配置特定的位置,但默认情况下会写入/ tmp / hadoop-username * location
答案 1 :(得分:0)
您的意思是说,每次Mapper运行时都会创建临时文件。 如果是,那么你就无法避免这种情况,因为Mapper的输出被写入磁盘而不是内存。 TaskTracker将负责为MR作业创建设置并为Mapper中间输出创建临时磁盘空间。 MR作业完成后,TaskTracker也会清理临时空间。
这是MR编程范式的瓶颈之一。
任何意见/反馈都将不胜感激。