dfs目錄位置由core-site.xml文件中 hadoop.tmp.dir 屬性決定 :hadoop.tmp.dir屬性對應值/dfs
1.dfs目錄是在NameNode被格式化的時候產生的
格式化:首先在停止hadoop之后,刪除 hadoop.tmp.dir 屬性對應值目錄下的所有文件后,執行 hadoop namenode -format 命令
2.dfs目錄的子目錄:name,data,nameseconds
3.in_use.lock標記當前節點已經在使用,存在於 hadoop.tmp.dir對應值/dfs/name 下
4.HDFS只有在第一啟動的時候(后面重啟不算,只有第一次),會默認在1min的時候進行一次合並,即:在1min的時候,edits_inprogress_xxxx 生成 edits_xxxx_xxxx,
並重新創建edits_inprogress_xxxx文件,之后文件就按照更新條件(主要空間維度和時間維度)進行合並
5.edits文件的開始和結束都會算作一次事務
6.HDFS上傳文件:如文件名為aaa.tar.gz
a. OP_ADD:在指定目錄下創建一個“同名文件._COPING_”,如:“aaa.tar.gz._COPING_”,此時這個文件允許寫入
b.OP_ALLOCATE_BLOCK_ID:分配BlockID
c.OP_SET_GENSTAMP_V2:給時間戳分配一個編號
d.OP_ADD_BLOCK:將數據傳輸到HDFS上
e.OP_CLOSE:關閉流,關閉文件,<OVERWRITE>false</OVERWRITE>,即此時文件不允許寫入,hdfs的特點:一次寫入
f.OP_RENAME_OLD:重命名
<SRC>/aaa.tar.gz._COPYING_</SRC> 原始
<DST>/aaa.tar.gz</DST> 目標
以上內容需要查看edit文件中內容:將edits文件內容進行轉換的命令:hdfs oev -i edits_xxxxxx_xxxxxx -o aaa.xml(轉為為xml文件格式,文件名隨意),然后查看aaa.xml文件
7.hdfs oiv -i fsimage_xxxxx -o f.xml -p XML 查看 fsimage文件
8.seen_txid 當前事務ID
9.VERSION 文件,主要的3個參數
a.clusterID:集群編號,在NameNode被格式化的時候,自動計算一個clusterID,並且在啟動HDFS之后,NameNode會將clusterID分發給每一個DataNode,用於NameNode與DataNode之間的通信管理,NameNode每格式化一次,clusterID都會重新計算。但是在NameNode重啟之后,由於DataNode之前已經有了clusterID,故NameNode會存在找不到DataNode的情況,解決方法2種:①將NameNode中的clusterID拷貝到DataNode中 ②將DataNode中的clusterID拷貝到NameNode中
b.storageType:節點類型
c.blockpoolID:塊池ID。主要用於聯邦HDFS中