1. 程式人生 > >在搭建好Hadoop集群后,namenode與datanode兩個過程不能起來,或者一個啟動之後另一個自動關閉

在搭建好Hadoop集群后,namenode與datanode兩個過程不能起來,或者一個啟動之後另一個自動關閉

故障現像

    此故障可以算是在換電腦搭集群后最多的故障了,首先是從節點上相關程序都沒起來,後來又是程序起來後從節點上datanode節點沒起來,最後是datanode程序起來之後,主節點上namenode程序又沒起來。此故障看起來一波三折,實際上在理解好相關原理後,解決起來要比第一個故障輕鬆一些。

解決思路

    原理為先:首先要找到對應關係,主節點上namenode主要是跟從節點上datanode相對應。

                                  主節點上jobtracker主要是跟從節點是tasktrack相對應。

    故障細分:1,從節點上程序起不來。2,datanode無法開啟 3,namenode無法開啟

解決步驟

    此故障在網上也是有很多攻略,在看完其他人的解決方法後。從理論聯絡實操分三步走來解決這個故障:

1,從節點上程序無法啟動,這個問題較為簡單。大部分是由於各虛擬機器之間的防火牆沒有關閉,而在真實的生產系統中。也表現來Linux之間的防火牆問題導致的HDFS叢集不通。又或者是暫時性關閉防火牆,沒有永久性關閉。具體的命令從網上都可以找到。

2,datanode無法開啟,這裡就要尋找你當初設定此叢集時的六個檔案,裡邊就有設定的相關引數。主要是在core-site.xml內,在這個裡邊,我們設定了相關臨時資料夾,也相當於這個程序在開啟之後是否與主節點需要通訊。當把這裡邊建立的tmp資料夾刪除之後,從節點上的datanode就可以順利開啟了。

3,namenode無法開啟,由於從上邊的原理上來看,datanode與namenode是相互依存的關係,而它們之間要啟動肯定是同時啟運的。不會一個開啟,一個關閉。若是這樣,那肯定另一個程序一會兒也會自動關閉。而控制兩個程序之間同步的有時間戳訊息。而這個訊息主要是在logs日誌裡。當把hadoop安裝目錄下的logs全刪除後。

然後,將全部程序停止,再全部重新啟動。所有程序就都起來了。至此,故障解決!!

故障反思

    此故障解決起來,主要是要把原理搞明白。不然在看網上相關攻略的時候總是會找不到方法。多去思考背後的原因,多去總結,反思!提升自己解決問題的能力!