天天看點

Hadoop一些常見錯誤

1.Hadoop采集的字元集問題

修改/etc/sysconfig/i18n 更改字元集為en_US.UTF-8 重新開機機器生效。

重新開機機器的指令為:在root下敲入如下指令:sync;sync;init 6

2.修改mapreduce 在gateway/性能下修改:

MapReduce 子 Java 基礎選項 、Map 任務 Java 選項庫 、Reduce 任務 Java 選項庫 全部配置成 -Xmx4294967296

在TASKTRACKER/性能下修改:MapReduce 子 Java 基礎選項 、Map 任務 Java 選項庫 、Reduce 任務 Java 選項庫 全部配置成 -Xmx4294967296

3.redis挂死,導緻無法采集

#現象

redis.clients.jedis.exceptions.JedisDataException:

MISCONF Redis is configured to save RDB snapshots,

but is currently not able to persist on disk.

啟動用戶端: /usr/local/redis/redis-cli

輸入: config set stop-writes-on-bgsave-error no

4.zookeeper無法啟動 處理辦法:

到master主機的/var/lib/zookeeper,删除所有的檔案,重新開機zookeeper即可。

sudo mkdir version-2

sudo chown -R zookeeper:zookeeper version-2

5.如果datanode連接配接不上namenode,導緻datanode無法啟動。

報錯:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to … failed on local exception: java.net.NoRouteToHostException: No route to host 關閉防火牆

輸入:service iptables stop

6.叢集一些易錯問題

錯誤現象:namenode in safe mode.

原因:hadoop進入安全模式。

解決方法:在shell中執行指令hadoop dfsadmin -safemode leave 使hadoop離開安全模式。

7.防火牆一定記得檢視!!!

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

原因:master伺服器上的防火牆沒有關閉。

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

8.虛拟機記憶體設定

問題:java.lang.OutOfMemoryError: Java heap space

原因:出現這種異常,明顯是 jvm 記憶體不夠得原因,要修改所有的 datanode 的 jvm 記憶體大小。

解決:執行指令Java -Xms1024m -Xmx4096m一般 jvm 的最大記憶體使用應該為總記憶體大小的一半,我們使用的 8G 記憶體,是以設定為 4096m,這一值可能依舊不是最優的值。

個人曾經遇到過的一些小坑,防火牆問題,往往會出現纰漏的地方,一定要檢視防火牆狀态!!!不管大坑小坑,都容易把人整懵。

繼續閱讀