我正在尝试在带有 Cygwin 的 Windows 7 上使用 Hadoop 0.22.0 在伪分布式配置中运行 Hadoop grep 示例。该示例在独立模式下运行良好,但在伪分布式模式下运行时会给出以下输出
$ bin/hadoop jar hadoop-mapred-examples-0.22.0.jar grep input output 'dfs[a-z.]+'
12/05/15 08:27:31 WARN conf.Configuration: mapred.used.genericoptionsparser is deprecated. Instead, use mapreduce.client.genericoptionsparser.used
12/05/15 08:27:31 WARN mapreduce.JobSubmitter: No job jar file set. User classes may not be found. See Job or Job#setJar(String).
12/05/15 08:27:31 INFO input.FileInputFormat: Total input paths to process : 1
12/05/15 08:27:32 INFO mapreduce.JobSubmitter: number of splits:1
12/05/15 08:27:33 INFO mapreduce.Job: Running job: job_201205150826_0001
12/05/15 08:27:34 INFO mapreduce.Job: map 0% reduce 0%
12/05/15 08:27:47 INFO mapreduce.Job: Task Id : attempt_201205150826_0001_m_000002_0, Status : FAILED
java.lang.Throwable: Child Error
at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:225)
Caused by: java.io.IOException: Task process exit with nonzero status of 1.
at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:212)
12/05/15 08:27:47 WARN mapreduce.Job: Error reading task outputhttp://xxx.xxx.xxx:50060/tasklog?plaintext=true&attemptid=attempt_201205150826_0001_m_000002_0&filter=stdout
有谁知道可能导致 Java Child Error 的原因,或者无法读取有关任务输出的警告?
我在 TaskTracker 日志中收到以下错误:
Failed to retrieve stdout log for task: attempt_201205151356_0001_m_000002_0
java.io.FileNotFoundException: C:\cygwin\usr\local\hadoop-0.22.0\logs\userlog\job_201205151356_0001\attempt_201205151356_0001_m_000002_0\log.index (The system cannot find the file specified)