最近再学习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中的插件中的默认选项有的还需要修改。
默认的配置是:
我按照“mapred-site.xml”中的配置修改了一下
这样执行就不会再报那个错误了。
- 大小: 17.3 KB
- 大小: 21 KB