NameNode的format操作做了什麼

2021-09-11 14:01:51 字數 1502 閱讀 8439

在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節點的恢復;

version:用來儲存namenode版本資訊,命名空間id(版本號),內容如下:

image/fsimage: 上一次提交前的/current/fsimage檔案;

ok,關於namenode執行format命令的情況就介紹到這兒。

NameNode故障處理

方法一 將secondarynamenode中資料拷貝到namenode儲存資料的目錄 1.kill 9 namenode程序 2.刪除namenode儲存的資料 opt module hadoop 2.7.2 data tmp dfs name rm rf opt module hadoop 2....

NameNode故障處理

方法一 將secondarynamenode中資料拷貝到namenode儲存資料的目錄 1.kill 9 namenode程序 2.刪除namenode儲存的資料 opt module hadoop 2.7.7 data tmp dfs name 看自己name的路徑 3.拷貝secondaryna...

NameNode故障處理

namenode故障後,可以採用如下兩種方法恢復資料。方法一 將secondarynamenode中資料拷貝到namenode儲存資料的目錄 kill 9 namenode 程序 刪除namenode儲存的資料 opt module hadoop 2.7.2 data tmp dfs name ha...