Eclipse插件调试Hadoop程序报/work/tmp does not exist.

最近再学习Hadoop,用的是Cygwin伪分布模式,今天按照书上的例子写了个小MapReduce程序,在eclipse中运行了一下,执行后报错,下面帖一下错误代码


11/12/05 16:10:35 INFO mapred.JobClient: Task Id : attempt_201112051608_0002_m_000001_2, Status : FAILED
[color=red]java.io.FileNotFoundException: File C:/hadoop/tmp/mapred/local/taskTracker/jobcache/job_201112051608_0002/attempt_201112051608_0002_m_000001_2/work/tmp does not exist.[/color]
	at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:361)
	at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
	at org.apache.hadoop.mapred.TaskRunner.setupWorkDir(TaskRunner.java:519)
	at org.apache.hadoop.mapred.Child.main(Child.java:155)


通过网上的文章了解到是"mapred.child.tmp"配置项的原因,需要在“mapred-site.xml”配置文件中配置“mapred.child.tmp”属性

	<property> 
		<name>mapred.child.tmp</name>   
		<value>/hadoop/childtmp</value>
	</property>


我又仔细的查看了一下“mapred-site.xml”配置文件,配置确实存在,那是哪里出了问题呢,我就继续查找,在群里不断的问,后来网友给了个提示,我修改了一下,果然好用。

eclipse中的插件中的默认选项有的还需要修改。

默认的配置是:


Eclipse插件调试Hadoop程序报/work/tmp does not exist._第1张图片

我按照“mapred-site.xml”中的配置修改了一下


Eclipse插件调试Hadoop程序报/work/tmp does not exist._第2张图片

这样执行就不会再报那个错误了。





你可能感兴趣的:(java,eclipse,mapreduce,hadoop,cygwin)