第一次啟動HDFS需對NameNode(簡稱NN)格式化 bin/hadoop namenode -format HDFS動態添加和刪除DataNode(簡稱DN),DN無需格式化而是在第一次啟動時創建存儲目錄。DN可以管理多個目錄,配置${dfs.data.dir} = /data/datanode,/data2/datanode 1.1 ${dfs.data
第一次啟動HDFS需對NameNode(簡稱NN)格式化
bin/hadoop namenode -format
HDFS動態添加和刪除DataNode(簡稱DN),DN無需格式化而是在第一次啟動時創建存儲目錄。DN可以管理多個目錄,配置${dfs.data.dir} = "/data/datanode,/data2/datanode"
該目錄一般有4個目錄和2個文件。
其中in_use.lock文件是在DataNode節點啟動之后產生的,其中各個目錄的作用如下:
blocksBeingWritten:該文件夾保存著當前正在”寫“的數據塊。
current:保存著HDFS文件系統中的數據塊,這些數據塊是成功提交到HDFS中的數據塊。detach:用于配合數據節點升級,共數據塊分離操作保存臨時工作文件。
tmp:該文件夾保存著當前正在”寫“的數據塊,和blockBeingWritten文件夾的區別是,blockBeingWritten中的數據塊寫操作由客戶端發起,tmp中的寫操作由數據塊復制引發,另一個數據節點正在發送數據到數據塊中。
storage:0.13版本以前的Hadoop使用storage文件作為數據塊的保存目錄,和現在的目錄結構不兼容,這個文件用于防止過舊的Hadoop版本在新的目錄結構上啟動,損壞系統。
in_use.lock:表明目錄已經被使用,停止數據節點,該文件會消失,通過in_use.lock文件,數據節點可以保證獨自占用該目錄,防止兩個數據節點示例共享一個目錄,造成混亂。
current目錄是數據節點中最重要的一個目錄,它用于存放數據塊,該目錄中既包含目錄,也包含文件,其中文件有兩種類型:
HDFS數據塊,保存著HDFS文件的內容;
用于保存數據塊的校驗信息的校驗信息文件,以meta后綴名標識;
VERSION文件是一個Java屬性文件,包含了HDFS的版本信息。
current目錄如下圖所示:
在這個圖片中,沒有目錄,是因為當前的數據節點中的文件塊的數量較少,只有當目錄中存儲的數據塊增加到一定規模時,子目錄名以subdir為前綴,然后后面加上目錄編號,數據節點會創建一個新目錄,用于保存新的塊及元數據。目錄中的數據塊數達到64時,便會創建子目錄,并形成一個更寬的目錄結構,同時\統一父目錄下最多會創建64個子目錄,所以在默認配置下,一個目錄下最多只有64個文件塊(128個文件)和64個子目錄。這種目錄管理方式既保證了目錄深度不會太深,而影響檢索文件性能,同時也避免了目錄保存大量數據塊,確保每個目錄中的文件塊是可控的。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com