1. 程式人生 > >Hadoop 1.x HDFS理論和底層原理

Hadoop 1.x HDFS理論和底層原理

1、 NameNode:儲存元資料,存放檔案資訊,檔案密度越大,其佔有空間越大,記憶體硬碟各一份,執行時載入到記憶體中,包含了檔案資訊、    塊對映,DataNode對映等對映關係;
   響應客戶請求,並轉移到對應的DataNode進行相應的操作。
2、 DataNode:儲存檔案內容的,儲存於硬碟中;
3、 一個NameNode對應多個DataNode;提供副本備份機制(架構感知策略)
4、 故障檢測:
   DataNode:心跳檢測,資料完整性檢測,塊報告
   NameNode:日誌檔案,映象檔案
5、 空間回收機制
6、 操作檔案要對NameNode和DataNode兩個節點一起操作,保證兩個節點的對應關係的統一性
7、 Shell命令操作:
   ls,lsr
   mkdir,cp,rm
   chmod,chown
   cat,mv,put,get,tail
8、 HDFS缺點:
 

9、 Secondary NameNode作用及執行流程:
 
   把NameNode的edits和fsimage通過網路拷貝到Secondary NameNode中,這個之前先把NameNode的edits建立一個新的來儲存從這個時點開始的可能的使用者操作,之後將二者進行合併再把合併完成的fsimage.ckpt傳回NameNode,並覆蓋原來的fsimage,完成記憶體中的NameNode資料和fsimage資料的同步(不是及時性的)。(並不把新的fsimage重新讀入記憶體,因為記憶體中時刻是最新的,這個操作意味著Secondary NameNode有一定的備份功能,但是隻能備份最新的這次的fsimage,NameNode宕機時能夠找回大部分資料而已)。
   Edits和fsimage的同步操作有兩個觸發途徑:3600秒固定觸發一次,edits達到64M的時候觸發(值可通過配置檔案設定)。
10、 Block副本放置策略:使用者上傳檔案先放在一個DataNode,接下來DataNode負責將該副本複製到另一臺機架的伺服器上,第三個副本放在第二個副本相同機架的另一臺伺服器,再有多餘的副本隨機放置。
   HDFS啟動時,先進入安全模式(其實是初始化模式),讀取硬碟上的fsimage等檔案資訊,讀取到記憶體中,初始化整個系統,這個過程中如果訪問檔案會發生錯誤。
   DataNode會定時向NameNode傳送心跳包,如果NameNode發現某個DataNode發生lost了,會通知其他的DataNode把故障DataNode的Block資訊在其他的DataNode複製一份,保證檔案Block的副本數不變。
11、 HDFS讀寫流程:
 

   客戶端連線伺服器,訪問檔案系統,檔案系統訪問NameNode獲取檔案的Block對映資訊,再通過檔案流系統訪問併發訪問所有Block。
12、 HDFS檔案許可權:和linux一樣,有三組rwx許可權,對檔案的x許可權無意義。
   注:HDFS只防止好人做錯事,不防止壞人做壞事,不做使用者密碼認證。
13、 安全模式: