來到第二家公司將近三個月,再也不作j2ee開發,開始接觸hadoop開發。這裏將本身在初識hadoop過程當中遇到的一些錯誤作一個簡單總結: java
(一)啓動hadoop集羣時易出現的錯誤:node
1. 錯誤現象:java.net.NoRouteToHostException: No route to host.shell
緣由:master服務器上的防火牆沒有關閉。apache
解決方法: 在master上關閉防火牆: chkconfig iptables off.windows
2. 錯誤現象:org.apache.hadoop.ipc.RPC: Server at JMN/10.22.1.203:9000 not available yet. /* JMN/10.22.1.203 是 hadoop集羣當中master的主機名/ip */安全
緣由:/etc/hosts中的文件被自動篡改。服務器
解決方法: 將/etc/hosts 文件按配置文件要求改回來。app
3. 錯誤現象:Too many fetch-failures.eclipse
緣由:結點間的連通不夠全面。ssh
解決方法:
1) 檢查 /etc/hosts要求本機ip對應服務器名,而且包含全部的服務器ip和服務器名。
2) 檢查 .ssh/authorized_keys要求包含全部服務器(包括其自身)的public key。
(二) 在hadoop集羣的master中用命令運行例子易出現的故障:
1. 錯誤現象:java.lang.OutOfMemoryError: Java heap space.
緣由:JVM內存不夠。
解決方法:修改mapred-site.xml中mapred.child.java.opts屬性的值,其默認值是-Xmx200m 可根據須要適當增大 該值。
2. 錯誤現象:could only be replicated to 0 nodes, instead of 1
解決方法:在NameNode上執行命令:hadoop namenode –format從新格式化HDFS,在格式化以前,須要將你 NameNode上所配置的dfs.name.dir這一namenode用來存放NameNode 持久存儲名字空間及事務日誌的本地文件系統路徑刪除,同時將各DataNode上的dfs.data.dir的路徑DataNode存放塊數據的本地文件系統路徑的目錄也刪除。
3. 錯誤現象:namenode in safe mode.
緣由:hadoop進入安全模式。
解決方法:在shell中執行命令hadoop dfsadmin -safemode leave 使hadoop離開安全模式。
(三)在windows下Eclipse中運行例子易出現的錯誤:
1. 錯誤現象:org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE, inode="job_201111031322_0003":heipark:supergroup:rwx-.
緣由:本地用戶administrator(本機windows用戶)想要遠程操做hadoop系統,沒有權限引發的。
解決辦法:
i、若是是測試環境,能夠取消hadoop hdfs的用戶權限檢查。打開conf/hdfs-site.xml,找到dfs.permissions屬性修改成false(默認爲true)OK了。
ii、修改hadoop location參數,在advanced parameter選項卡中,找到hadoop.job.ugi項,將此項改成啓動hadoop的用戶名便可。
2.錯誤現象:IOException: Cannot run program "chmod": CreateProcess error=2.
緣由: 沒有安裝cygwin或 沒有配置環境變量。
解決辦法:安裝並配置環境變量 bin到 path下 重啓 eclipse 問題便可。
3. 錯誤現象: WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:781)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)
………..
緣由:客戶端程序運行時java虛擬機內存分配不夠
解決辦法:修改run configuration,選擇Arguments選項卡,在VM arguments欄中加入-Xmx1024m,保存便可解決問題。