在hadoop的hdfs部署好了之後並不能馬上使用,而是先要對配置的檔案系統進行格式化。在這裡要注意兩個概念
,乙個是檔案系統,此時的檔案系統在物理上還不存在,或許是網路磁碟來描述會更加合適;二就是格式化,此處的格式化並不是指傳統意義上的本地磁碟格式化,而是一些清除與準備工作。本文接下來將主要討論namenode節點上的格式化。
我們都知道,
namenode主要被用來管理整個分布式檔案系統的命名空間(實際上就是目錄和檔案)的元資料資訊,同時為了保證資料的可靠性,還加入了操作日誌,所以,namenode會持久化這些資料(儲存到本地的檔案系統中)。對於第一次使用hdfs,在啟動namenode時,需要先執行-format命令,然後才能正常啟動namenode節點的服務。那麼,namenode的fromat命令到底做了什麼事情呢?
在namenode節點上,有兩個最重要的路徑,分別被用來儲存
元資料資訊和操作日誌,而這兩個路徑來自於配置檔案,它們對應的屬性分別是dfs.name.dir和dfs.name.edits.dir,同時,它們預設的路徑均是/tmp/hadoop/dfs/name。格式化時,namenode會清空兩個目錄下的所有
檔案,之後,會在目錄
dfs.name.dir下建立檔案/current/fsimage、/current/fstime、/current/version、/image/fsimage,會在目錄dfs.name.edits.dir下建立檔案/current/edits、/current/fstime、 /current/version、/image/fsimage,那麼這些檔案又是用來幹什麼的呢?
在介紹這檔案的用途之前,我們可以將dfs.name.dir和dfs.name.edits.dir配置成相同的目錄,這樣的話,namenode執行格式化之後,會產生如下的檔案:/current/fsimage、/current/edits、/current/fstime、/current/version、/image/fsimage,由此可以看出上面名字相同的檔案實際是一樣的,所以在這裡,我建議把dfs.name.dir和dfs.name.edits.dir配置成相同的值,以來提高namenode的效率。ok,現在就來重點的介紹一下這些檔案的用途吧。
fsimage:儲存命名空間(實際上就是目錄和檔案)的元資料資訊,檔案結構如下:
edits:用來儲存對命名空間操作的日誌資訊,實現namenode節點的恢復;
fstime:用來儲存check point 的時間;
version:用來儲存namenode版本資訊,內容如下:
/image/fsimage: 上一次提交前的/current/fsimage檔案;
ok,關於namenode執行format命令的情況就介紹到這兒
Hadoop namenode無法啟動
最近遇到了乙個問題,執行start all.sh的時候發現jps一下namenode沒有啟動 每次開機都得重新格式化一下namenode才可以 其實問題就出在tmp檔案,預設的tmp檔案每次重新開機會被清空,與此同時namenode的格式化資訊就會丟失 於是我們得重新配置乙個tmp檔案目錄 首先在h...
Hadoop namenode無法啟動
最近遇到了乙個問題,執行start all.sh的時候發現jps一下namenode沒有啟動 每次開機都得重新格式化一下namenode才可以,但這個可不是解決問題的方法啊,總不能每次啟動就把檔案系統格式化一下吧,這還得了 檢視了一下日誌,發現如下錯誤 error org.apache.hadoop...
Hadoop namenode無法啟動
最近遇到了乙個問題,執行start all.sh的時候發現jps一下namenode沒有啟動 每次開機都得重新格式化一下namenode才可以 其實問題就出在tmp檔案,預設的tmp檔案每次重新開機會被清空,與此同時namenode的格式化資訊就會丟失 於是我們得重新配置乙個tmp檔案目錄 首先在h...