分类: LINUX
2009-04-04 12:51:10
hadoop莫名的出现了如下的错误,非常奇怪,因为之前曾经运行的好好的。
该错误表面现象是Map进程成功之后,Reduce死活不前进,一直停留在0%的位置,查看系统log则大概为一下内容:
org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find
task_200805131750_0005_m_000001_0/file.out.index in any of the configured
local directories
at
org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathToRead(LocalDirAllocator.java:359)
at
org.apache.hadoop.fs.LocalDirAllocator.getLocalPathToRead(LocalDirAllocator.java:138)
at
org.apache.hadoop.mapred.TaskTracker$MapOutputServlet.doGet(TaskTracker.java:2253)
原来hadoop会自动到使用主机域名来寻找主机IP,然后使用该IP进行通信,所以,如果主机IP更改之后,HADOOP
很可能得到了错误的IP,进而造成无法通信。
到/etc/hosts里面将IP改为现在的IP就可以正常访问了。
但是仍然很气怪的是MAP却可以正常完成,这个就得看看源码来解释了。