HDFS原理深入理解

2022-09-20 21:03:17 字數 1802 閱讀 1587

1、hdfs概述

(1)資料量越來越多,在乙個作業系統管轄的範圍存不下了,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,因此迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統 。

(2)是一種允許檔案通過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。

(3)通透性。讓實際上是通過網路來訪問檔案的動作,由程式與使用者看來,就像是訪問本地的磁碟一般。

(4)容錯。即使系統中有某些節點宕機,整體來說系統仍然可以持續運作而不會有資料損失【通過副本機制實現】。

(5)分布式檔案管理系統很多,hdfs只是其中一種,不合適小檔案。

2、hdfs架構

3、主節點namenode的概述

(1)namenode是整個檔案系統的管理節點。它維護著整個檔案系統的檔案目錄樹,檔案/目錄的元資訊和每個檔案對應的資料塊列表。接收使用者的操作請求。

(2)檔案預設包括:

fsimage:元資料映象檔案。儲存某一時段namenode記憶體元資料資訊。

edits:操作日誌檔案,namenode啟動後一些新增元資訊日誌。

fstime:儲存最近一次checkpoint的時間

(3)以上這些檔案是儲存在linux的檔案系統中:

hdfs-site.xml的dfs.namenode.name.dir屬性

4、secondary namenode的描述

snn的工作流程

5、從節點datanode的概述

(1)提供真實檔案資料的儲存服務。

(2)檔案塊(block):最基本的儲存單位。

對於檔案內容而言,乙個檔案的長度大小是size,那麼從檔案的0偏移開始,按照固定的大小,順序對檔案進行劃分並編號,劃分好的每乙個塊稱乙個block。2.0以後hdfs預設block大小是128mb,以乙個256mb檔案,共有256/128=2個block.

hdfs-site.xml中dfs.blocksize屬性

(3)不同於普通檔案系統的是,hdfs中,如果乙個檔案小於乙個資料塊的大小,並不占用整個資料塊儲存空間

(4)replication。多複本。預設是三個:

hdfs-site.xml的dfs.replication屬性

6、hdfs 的trash**站
(1)和linux系統(桌面環境)的**站設計一樣,hdfs會為每乙個使用者建立乙個**站目錄:/user/使用者名稱/.trash/,每乙個被使用者通過shell刪除的檔案/目錄,fs.trash.interval是在指在這個**週期之內,檔案實際上是被移動到trash的這個目錄下面,而不是馬上把資料刪除掉。等到**週期真正到了以後,hdfs才會將資料真正刪除。預設的單位是分鐘,1440分鐘=60*24,剛好是一天。 

(2)配置:在每個節點(不僅僅是主節點)上新增配置 core-site.xml,增加如下內容

fs.trash.interval

1440

(3)注意:如果刪除的檔案過大,超過**站大小的話會提示刪除失敗,需要指定引數 -skiptrash

深入理解simhash原理

lsh locality sensitive hashing 是區域性敏感性hashing,它與傳統的hash是不同的。傳統hash的目的是希望得到o 1 的查詢效能,將原始資料對映到相應的桶內。lsh的基本思想是將空間中原始資料相鄰的2個資料點通過對映或者投影變換後,這兩個資料點在新的空間中的相鄰...

深入理解hashmap的原理

一 什麼是雜湊?雜湊也叫雜湊,是將不同長度的輸入通過乙個函式轉換成同乙個長度輸出的過程,這個輸出的值叫雜湊值,這個轉換函式叫雜湊函式,雜湊函式所採用的演算法加雜湊演算法。實際上是乙個通過訊息得到訊息摘要的方法 二 什麼是雜湊表?雜湊表是乙個通過key訪問value的資料結構,它是基於乙個陣列,存資料...

深入理解springmvc 底層原理

深入理解springmvc 底層原理 web.xml 檔案中的配置 dispatcherservlet springmvc執行流程 springmvc 一切請求的入口 dispatcherservlet 對映處理器 對映 key value 作用 根據請求 url 找到乙個 method handl...