Hadoop 集群常見錯誤

openkk 12年前發布 | 99K 次閱讀 Hadoop 企業服務總線ESB

這里將自己在初識hadoop過程中遇到的一些錯誤做一個簡單總結: 

(一)啟動hadoop集群時易出現的錯誤:

1.   錯誤現象:java.net.NoRouteToHostException: No route to host.

   原因:master服務器上的防火墻沒有關閉。

   解決方法: master上關閉防火墻: chkconfig iptables off.

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 文件按配置文件要求改回來。

3.    錯誤現象Too many fetch-failures.

   原因:結點間的連通不夠全面

   解決方法:

        1) 檢查 /etc/hosts要求本機ip對應服務器名,并且包含所有的服務器ip和服務器名。

        2) 檢查 .ssh/authorized_keys要求包含所有服務器(包括其自身)的public key

(二)  hadoop集群的master中用命令運行例子易出現的故障:

1. 錯誤現象:java.lang.OutOfMemoryError: Java heap space.

   原因:JVM內存不夠。

   解決方法:修改mapred-site.xmlmapred.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離開安全模式。

(三)在windowsEclipse中運行例子易出現的錯誤:

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(默認為trueOK了。

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,保存即可解決問題。

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!