大數(shù)據(jù)通用組件故障處理
https://www.ctyun.cn/developer/article/441065069686853
HDFS
1.HDFS 服務(wù)一直異常
檢查HDFS是否處于安全模式。
檢查ZooKeeper服務(wù)是否運(yùn)行正常。
2.HDFS 維護(hù)客戶端出現(xiàn)OutOfMemoryError 異常
使用HDFS客戶端之前,需要在HADOOP_CLIENT_OPTS更新"-Xmx" GC參數(shù)。
直接執(zhí)行如下命令:
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx512m"
在命令中調(diào)整參數(shù),減少HDFS維護(hù)客戶端運(yùn)行命令時(shí)所需的內(nèi)存。
當(dāng)執(zhí)行hdfs dfs -ls /user/*/*/*/*命令時(shí)上報(bào)OutOfMemoryError,您可以執(zhí)行類似的命令來(lái)獲取目錄。例如:hdfs dfs -ls -R /user。
3.NameNode 的主備倒換失敗
需要格式化ZKFC,并將元數(shù)據(jù)從主NameNode拷貝到新增的NameNode節(jié)點(diǎn)中。
Zookeeper
1.ZooKeeper 無(wú)法對(duì)外提供服務(wù)
檢查ZooKeeper安裝并運(yùn)行的實(shí)例是否為奇數(shù)個(gè),如3個(gè)、5個(gè)。
恢復(fù)故障的ZooKeeper服務(wù)。
2.安裝DNS 導(dǎo)致ZooKeeper 服務(wù)異常
ZooKeeper所在節(jié)點(diǎn)的“/etc/hosts”配置錯(cuò)誤,ZooKeeper所在節(jié)點(diǎn)配置了DNS服務(wù)。
檢查ZooKeeper故障節(jié)點(diǎn)的“/etc/hosts”文件中,IP和主機(jī)名是否正確,是否有一個(gè)IP對(duì)應(yīng)多個(gè)主機(jī)名,或者一個(gè)主機(jī)名對(duì)應(yīng)多個(gè)IP的情況。
確認(rèn)ZooKeeper所在的節(jié)點(diǎn)沒(méi)有安裝DNS服務(wù)
Yarn
1.ResourceManager 原生界面的鏈接不可用
檢查本地的“hosts”文件中是否對(duì)HostName和IP的對(duì)應(yīng)關(guān)系進(jìn)行了配置。檢查該集群是否開(kāi)放了相應(yīng)端口。
2.ResourceManager 節(jié)點(diǎn)故障
查看是否有Yarn服務(wù)不可用告警產(chǎn)生,并且告警原因?yàn)镹o active instance,參考告警中描述操作。
檢查ZooKeeper服務(wù)狀態(tài),如果沒(méi)有告警,說(shuō)明ZooKeeper服務(wù)正常,不用檢查。檢查網(wǎng)絡(luò)狀態(tài)。
Spark
1.任務(wù)掛起,報(bào)Initial job has not accepted any resources 異常
查看集群內(nèi)每臺(tái)節(jié)點(diǎn)中的“/etc/hosts”文件中是否加入了客戶端節(jié)點(diǎn)的IP和主機(jī)名。如果“/etc/hosts”文件未加入,則修改文件,重試跑應(yīng)用。
若“/etc/hosts”加入了客戶端節(jié)點(diǎn)的IP和主機(jī)名后,該問(wèn)題還存在時(shí),查看Executor端對(duì)應(yīng)的進(jìn)程CoarseGrainedExecutorBackend是否存在。如果不存在,可能是由于executor memory配置太大導(dǎo)致的。
2.內(nèi)存不足,無(wú)法退出應(yīng)用程序
執(zhí)行命令強(qiáng)制將任務(wù)退出,然后通過(guò)修改內(nèi)存參數(shù)的方式解決內(nèi)存不足的問(wèn)題,使任務(wù)執(zhí)行成功。
針對(duì)此類數(shù)據(jù)量大的任務(wù),希望任務(wù)不再掛起,遇到內(nèi)存不足時(shí),直接提示任務(wù)運(yùn)行失敗。
3.由于磁盤(pán)空間不足導(dǎo)致運(yùn)行應(yīng)用程序失敗
應(yīng)用程序中,若有shuffle操作時(shí),會(huì)將shuffle的數(shù)據(jù)寫(xiě)到磁盤(pán)中。當(dāng)磁盤(pán)空間不夠時(shí),便會(huì)出現(xiàn)“No space left on device”錯(cuò)誤。
建議在執(zhí)行Spark開(kāi)發(fā)程序之前,應(yīng)先根據(jù)實(shí)際數(shù)據(jù)量,估算shuffle過(guò)程的數(shù)據(jù)的大小,配置足夠的磁盤(pán)空間再提交應(yīng)用程序。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。