java.io.IOException:作业失败了!使用hadoop-0.19.1在我的osx上运行示例应用程序时

时间:2009-04-17 17:25:15

标签: macos hadoop ioexception java-6

bash-3.2$ echo $JAVA_HOME
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
bash-3.2$ bin/hadoop dfs -copyFromLocal conf /user/yokkom/input2
bash-3.2$ bin/hadoop jar hadoop-*-examples.jar grep input2 output 'dfs[a-z.]+'
09/04/17 10:09:32 INFO mapred.FileInputFormat: Total input paths to process : 10
09/04/17 10:09:33 INFO mapred.JobClient: Running job: job_200904171309_0001
java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232)
        at org.apache.hadoop.examples.Grep.run(Grep.java:69)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.examples.Grep.main(Grep.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:141)
        at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:165)
        at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
        at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)

有谁知道为什么会这样?同样的工作在linux机器上运行得非常好。并且,在“作业失败”发生后,整个Hadoop集群停止响应。

我的MacOS版本是10.5.6。

编辑 hadoop-0.20.1

的结果相同

2 个答案:

答案 0 :(得分:0)

我用谷歌搜索它并且之前发生了同样的错误(在同一行)。阅读herehere

第二个链接表明以下内容:

  • 删除conf / log4j.properties以查看详细报告
  • 尝试增加堆内存(使用-Xms和-Xmx开关)

答案 1 :(得分:0)

是的grep可以吸收内存,特别是在大型数据集上。你的投入有多大?顺便说一下,还有烫发记忆。

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

有一些有趣的开关可以在OutOfMemory上执行自定义行为,但我怀疑jobRunner只是在它到达VM之前捕获所有内容。您可能需要另一种方法来调试它。