HDFS(分佈式文件存儲系統)--回收站機制及dfs目錄
目錄
一、回收站機制
概述
-
在HDFS中,回收站機制默認是關閉的,即從HDFS上刪除文件的時候是立即刪除的
-
可以通過配置來手動開啓回收站,指定被刪除文件的保留時間
配置
- 進入Hadoop的安裝目錄下的子目錄etc/hadoop:cd hadoop-2.7.1/etc/hadoop
- 配置core-site.xml vim core-site.xml
- 添加如下內容
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
其中1440,是在文件挪入回收站之後,在回收站中的存貨時間,如果不配置默認是0、單位是min
注意事項
- 回收站的配置中,value的時間單位是分鐘。如果配置程0,則表示不開啓HDFS的回收站機制。
- 配置爲1440表示回收間隔爲1天,即文件在回收站存在1天后,會被清除
- 當啓動回收站後,再刪除文件時:
- 可以通過遞歸查看指令,查看回收站中的文件:hadoop fs -lsr /user/root/.Trash
- 如果想恢復被刪除的文件,執行hdfs 的mv 指令即可
二、dfs目錄
概述
- dfs目錄表示HDFS的存儲目錄(是在NameNode格式化之後出現的)
- dfs/name表示NameNode的持久化目錄
- dfs/data表示DataNode的存儲目錄
- dfs/namesecondary表示SecondaryNameNode的存儲目錄
- in_use.lock用於標記當前節點已經開啓了對應的進程,作用是防止在同一臺服務器上啓動多個NameNode,避免管理紊亂
- HDFS在第一次啓動的時候,1min之後會自動進行一次edits文件的滾動
- 在HDFS中,會對每一次的寫操作分配一個全局遞增的編號,編號稱之爲事務id - txid
- 在HDFS中,將開始記錄日誌和結束記錄日誌看作是一個寫操作--每一個edits文件的開頭和結尾都是OP_START_LOG_SEGMENT和OP_END_LOG_SEGMENT
- 上傳文件
- OP_ADD 將文件加入到指定的HDFS目錄下,並以._Copyging_結尾,表示此文件還未寫完
- OP_ALLOCATE_BLOCK_ID 爲文件分配塊ID
- OP_SET_GENSTAMP_V2 爲塊生成時間戳版本號,是全局唯一的
- OP_ADD_BLOCK 寫塊數據
- OP_CLOSE 表示塊數據寫完
- OP_RENAME_OLD 將文件重命名,表示寫完
- 文件上傳完之後不能改
- md5文件是爲了防止文件篡改,對fsimage文件進行校驗的
- version文件:
- clusterID - 集羣編號。在NameNode格式化的時候自動計算產生的,也就意味着NameNode每格式化一次,clusterID就會重新計算(格式化之後就找不到原來的DataNode,需要把ClusterID重新分配給DataNode),NameNode會把ClusterID分發給每個DataNode,DataNode也只接受一次,每次通信都會攜帶ClusterID,都會校驗集羣ID是否一樣。
- BlockpoolID - 塊池編號。首先需要了解,聯邦HDFS(在HDFS中,因爲NameNode就只有1個,所以NameNode容易成爲HDFS的併發瓶頸,把原來一個NameNode按目錄劃分成多個NameNode,操作是把多個NameNode看成一個NameNode,就是聯邦HDFS,就是多個節點取代一個NameNode,需要把路徑固定,每一個路徑對應一個節點,能夠有效的提高併發量,劣勢在於路徑無法在更改)。--------原來一個NameNode,現在多個NameNode,需要發送多個clusterID,增加了DataNode負擔,也是增加了網絡的負擔。要求處於同一個聯邦的NameNode的BlockPoolID要一致,才能體現是一個整體
三、查看edits文件和fsimage文件
- 查看edits文件:hdfs oev -i edits文件 -o xxx.xml。例如:hdfs oev -i edits_0000000000000000001-0000000000000000003 -o edits.xml
- 查看fsimage文件:hdfs oiv -i fsimage文件 -o xxx.xml -p XML。例如:hdfs oiv -i fsimage_0000000000000000012 -o fsimage.xml -p XML
- fsimage介紹:fsimage是一個二進制文件,當中記錄了HDFS中所有文件和目錄的元數據信息。