2011-10-23 194 views
6

有没有办法输出来记录MapReduce作业的中间(Map Phase)输出而不编辑应用程序? (该应用程序不是我的,但集群是,并且我可以根据需要设置Hadoop集群)Hadoop MapReduce中间输出

+0

你能重新配置工作吗? –

回答

8

keep.task.files.pattern参数可用于保留中间文件。一旦作业完成,中间文件必须手动清理。因为这是一个map/reduce任务属性,所以必须在配置文件中设置它,并再次打包jar文件。

+0

请你详细说明一下吗?我已经设置了这个参数,并且在输出目录以及mapred本地缓存中的任何地方都进行了搜索,但没有任何地图阶段输出... – ihadanny

+0

...我对$ {mapred.output.dir }/_暂时的,但我能找到的所有文件夹都是“_attempt_local_0003_r_000000”文件夹,从来没有与其对应的“m”文件夹 – ihadanny

+0

我在'mapred'中将'keep.task.files.pattern'设置为'。* 00000. *' -site.xml“和'core-site.xml'中,参数'hadoop.tmp.dir'设置为'$ HADOOP_HOME \ tmp'。执行作业后,file.out和file.out.index位于'$ HADOOP_HOME/tmp/mapred/local/taskTracker/praveensripati/jobcache/job_201111031937_0001/attempt_201111031937_0001_m_000001_0/output'文件夹中。这些文件是SequenceFile格式。 [Here](http://goo.gl/7fJzT)是读取序列文件的示例代码。你使用了什么样的模式? –