当我使用Hadoop运行mapreduce程序时,我收到以下错误.
10/01/18 10:52:48 INFO mapred.JobClient: Task Id : attempt_201001181020_0002_m_000014_0, Status : FAILED java.io.IOException: Task process exit with nonzero status of 1. at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:418) 10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stdout 10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stderr
这个错误是什么?
Hadoop产生此错误的一个原因是包含日志文件的目录变得太满.这是Ext3文件系统的限制,每个inode只允许最多32000个链接.
检查日志目录的填充程度 hadoop/userlogs
对此问题的一个简单测试就是尝试从命令行创建一个目录,例如: $ mkdir hadoop/userlogs/testdir
如果在用户日志中有太多目录,操作系统将无法创建目录,并且报告太多.