Hadoop常見問題及解決方法
問題1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out問題描述:在程序中需要打開多個(gè)文件進(jìn)行分析,系統(tǒng)默認(rèn)的最大文件數(shù)量是
問題1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out
問題描述:在程序中需要打開多個(gè)文件進(jìn)行分析,系統(tǒng)默認(rèn)的最大文件數(shù)量是1024。對(duì)于正常使用來說,這個(gè)數(shù)量足夠了。但對(duì)于程序來說可能不夠。
解決方法:
1. 修改文件,在文件末尾添加以下內(nèi)容:
* soft nofile 102400 * hard nofile 409600
2. 修改/etc/pam.d/login文件,在文件末尾添加以下內(nèi)容:
session required /lib/security/pam_
問題2:Too many fetch-failures
問題描述:出現(xiàn)這個(gè)問題主要是節(jié)點(diǎn)之間的連通性不夠全面。
解決方法:
1. 檢查/etc/hosts文件,確保本機(jī)IP對(duì)應(yīng)服務(wù)器名,并且包含所有服務(wù)器的IP和服務(wù)器名。
2. 檢查.ssh/authorized_keys文件,確保包含所有服務(wù)器(包括本機(jī))的public key。
問題3:處理速度特別慢
問題描述:Map階段很快,但Reduce階段很慢,而且反復(fù)出現(xiàn)reduce0%。
解決方法:結(jié)合問題2的解決方法,修改文件中的export HADOOP_HEAPSIZE4000。
問題4:?jiǎn)?dòng)Datanode后無法訪問且無法結(jié)束
問題描述:在重新格式化一個(gè)新的分布式文件系統(tǒng)時(shí),需要?jiǎng)h除NameNode上配置的路徑,同時(shí)刪除各DataNode上配置的路徑。
解決方法:刪除NameNode上的/home/hadoop/NameData目錄,在每個(gè)DataNode上刪除對(duì)應(yīng)的/home/hadoop/DataNode1和/home/hadoop/DataNode2目錄。注意,刪除操作是危險(xiǎn)的,請(qǐng)?jiān)诖_認(rèn)無誤的情況下進(jìn)行。
問題5: Could not obtain block
問題描述:出現(xiàn)這種情況通常是節(jié)點(diǎn)斷開連接。
解決方法:檢查網(wǎng)絡(luò)連接,確保節(jié)點(diǎn)之間能夠正常通信。
問題6: Java heap space
問題描述:出現(xiàn)這種異常通常是JVM內(nèi)存不足。
解決方法:修改所有DataNode的JVM內(nèi)存大小為Java -Xms1024m -Xmx4096m。一般來說,JVM的最大內(nèi)存使用應(yīng)該設(shè)置為總內(nèi)存大小的一半。
問題7:Namenode in safe mode
解決方法:運(yùn)行bin/hadoop dfsadmin -safemode leave命令離開安全模式。
問題8: No route to host
解決方法:運(yùn)行sudo /etc/init.d/iptables stop命令停止iptables防火墻。
問題9:更改Namenode后,在Hive中運(yùn)行select依舊指向之前的Namenode地址
解決方法:當(dāng)創(chuàng)建一個(gè)表時(shí),Hive會(huì)將表的位置(例如hdfs://ip:port/user/root/...)存儲(chǔ)在元數(shù)據(jù)中。因此,當(dāng)新建一個(gè)集群時(shí),Master節(jié)點(diǎn)擁有新的IP地址,但是Hive的元數(shù)據(jù)仍然指向舊集群中的位置。可以修改元數(shù)據(jù)以更新為新的Namenode地址,或者使用彈性IP來簡(jiǎn)化解決方案。