Java大數據之路--HDFS詳解(4)--回收站機制及dfs目錄

HDFS(分佈式文件存儲系統)--回收站機制及dfs目錄

目錄

HDFS(分佈式文件存儲系統)--回收站機制及dfs目錄

一、回收站機制

概述

配置

注意事項

二、dfs目錄

概述

三、查看edits文件和fsimage文件


一、回收站機制

概述

  1. 在HDFS中,回收站機制默認是關閉的,即從HDFS上刪除文件的時候是立即刪除的

  2. 可以通過配置來手動開啓回收站,指定被刪除文件的保留時間

配置

  1. 進入Hadoop的安裝目錄下的子目錄etc/hadoop:cd hadoop-2.7.1/etc/hadoop
  2. 配置core-site.xml    vim core-site.xml
  3. 添加如下內容
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

其中1440,是在文件挪入回收站之後,在回收站中的存貨時間,如果不配置默認是0、單位是min

注意事項

  1. 回收站的配置中,value的時間單位是分鐘。如果配置程0,則表示不開啓HDFS的回收站機制。
  2. 配置爲1440表示回收間隔爲1天,即文件在回收站存在1天后,會被清除
  3. 當啓動回收站後,再刪除文件時:
  4. 可以通過遞歸查看指令,查看回收站中的文件:hadoop fs -lsr  /user/root/.Trash
  5. 如果想恢復被刪除的文件,執行hdfs 的mv 指令即可

二、dfs目錄

概述

  1. dfs目錄表示HDFS的存儲目錄(是在NameNode格式化之後出現的)
    1. dfs/name表示NameNode的持久化目錄
    2. dfs/data表示DataNode的存儲目錄
    3. dfs/namesecondary表示SecondaryNameNode的存儲目錄
  2. in_use.lock用於標記當前節點已經開啓了對應的進程,作用是防止在同一臺服務器上啓動多個NameNode,避免管理紊亂
  3. HDFS在第一次啓動的時候,1min之後會自動進行一次edits文件的滾動
  4. 在HDFS中,會對每一次的寫操作分配一個全局遞增的編號,編號稱之爲事務id - txid
  5. 在HDFS中,將開始記錄日誌和結束記錄日誌看作是一個寫操作--每一個edits文件的開頭和結尾都是OP_START_LOG_SEGMENT和OP_END_LOG_SEGMENT
  6. 上傳文件
    1. OP_ADD 將文件加入到指定的HDFS目錄下,並以._Copyging_結尾,表示此文件還未寫完
    2. OP_ALLOCATE_BLOCK_ID 爲文件分配塊ID
    3. OP_SET_GENSTAMP_V2 爲塊生成時間戳版本號,是全局唯一的
    4. OP_ADD_BLOCK 寫塊數據
    5. OP_CLOSE  表示塊數據寫完
    6. OP_RENAME_OLD 將文件重命名,表示寫完
  7. 文件上傳完之後不能改
  8. md5文件是爲了防止文件篡改,對fsimage文件進行校驗的
  9. version文件:
    1. clusterID - 集羣編號。在NameNode格式化的時候自動計算產生的,也就意味着NameNode每格式化一次,clusterID就會重新計算(格式化之後就找不到原來的DataNode,需要把ClusterID重新分配給DataNode),NameNode會把ClusterID分發給每個DataNode,DataNode也只接受一次,每次通信都會攜帶ClusterID,都會校驗集羣ID是否一樣。
    2. BlockpoolID - 塊池編號。首先需要了解,聯邦HDFS(在HDFS中,因爲NameNode就只有1個,所以NameNode容易成爲HDFS的併發瓶頸,把原來一個NameNode按目錄劃分成多個NameNode,操作是把多個NameNode看成一個NameNode,就是聯邦HDFS,就是多個節點取代一個NameNode,需要把路徑固定,每一個路徑對應一個節點,能夠有效的提高併發量,劣勢在於路徑無法在更改)。--------原來一個NameNode,現在多個NameNode,需要發送多個clusterID,增加了DataNode負擔,也是增加了網絡的負擔。要求處於同一個聯邦的NameNode的BlockPoolID要一致,才能體現是一個整體

三、查看edits文件和fsimage文件

  1. 查看edits文件:hdfs oev -i edits文件 -o xxx.xml。例如:hdfs oev -i edits_0000000000000000001-0000000000000000003 -o edits.xml
  2. 查看fsimage文件:hdfs oiv -i fsimage文件 -o xxx.xml -p XML。例如:hdfs oiv -i fsimage_0000000000000000012 -o fsimage.xml -p XML
  3. fsimage介紹:fsimage是一個二進制文件,當中記錄了HDFS中所有文件和目錄的元數據信息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章