我正在尝试使用带有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子级错误的原因,或者无法读取有关任务输出的警告?
我在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)
答案 0 :(得分:1)
当我指定的配置超出了我系统上可用的内存量时,我看到了这个错误。检查您指定的任务槽的数量以及每个子JVM的堆大小。
答案 1 :(得分:1)
不确定这是否仍然相关,因为hadoop现在是版本1.0.x。
如果可以帮助我在cygwin-1.7 win-7 jdk1.7_x64上设法移植1.0.1。
这里存在很多问题,这些问题围绕着路径混乱, 在shell脚本和包装器中,在hadoop核心java代码中,以及非平凡的 事实上,java不了解cygwin符号链接。
以下是完整工作修复的说明:
http://en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin
它也在sourceforge上,虽然我还没有上传补丁代码 但是我想要移植最新版本(这是1.0.1)。
答案 2 :(得分:0)
可以hadoop写入它需要的所有目录吗?像mapred.local.dir和hadoop.tmp.dir?这可能会导致问题
答案 3 :(得分:0)
当logs目录变大时,会发生这种情况。