http://www.cnblogs.com/wycg1984/archive/2010/04/27/1722431.html
下面是Hadoop使用过程中常见错误及解决方法的汇总 (英文部分会后续转为中文)
1. Too many open files错误
有時候 Map Reduce 的工作跑一跑,會發現 datanode 突然都陣亡,去看 log 會發現很多 Too many open files 的錯誤:
2008-09-11 20:20:22,836 ERROR org.apache.hadoop.dfs.DataNode: 192.168.1.34:50010:DataXceiver: java.io.IOException: Too many open files
at sun.nio.ch.EPollArrayWrapper.epollCreate(Native Method)
at sun.nio.ch.EPollArrayWrapper.<init>(EPollArrayWrapper.java:68)
at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:52)
at sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:18)
at sun.nio.ch.Util.getTemporarySelector(Util.java:123)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:92)
at org.apache.hadoop.dfs.DataNode$DataXceiver.writeBlock(DataNode.java:1150)
at org.apache.hadoop.dfs.DataNode$DataXceiver.run(DataNode.java:994)
at java.lang.Thread.run(Thread.java:619)
這個發生的原因是同時間很多 client 要去跟 datanode 要東西,因此消耗太多的 file descriptor,那又因為我在用的 Linux 上面預設單一 process 能開的檔案只有 1,024 個,>
於是就造成了這種結果。
修正的方法是去 /etc/security/limits.conf 加上這行:
* - nofile 8192
讓單一 process 能同時開到 8,192 個檔案。改好後重開 datanode 就可以了。
2. 出现错误时采取的步骤:看Log,试试单机模式
- If you are having problems, check the logs in the logs directory to see if there are any Hadoop errors or Java Exceptions.
- Logs are named by m