HDFS的基礎知識 原理篇(二)

2021-10-11 13:29:05 字數 1508 閱讀 4822

別稱:機架感知、rack awareness

含義:資料塊會優先儲存在離namenode近的機器或者說成離namenode機架近的機器上

特點:1)如果乙個機架出問題,不會影響資料讀寫

2)寫入資料的時候會寫到不同機架的datanode中

3)mapreduce會根據機架獲取離自己比較近的網路資料

4)乙個namenode盡量將乙個塊的多個副本放在多個安裝點(即機櫃)上以提高容錯能力。每個節點都知道它的機櫃id

5)hdfs允許管理員決定乙個節點屬於哪個安裝點

作用:1)可以帶來效能和安全性的提公升

2)平衡容錯能力與網路流量

特點:1)集群被分配給不同機架

2)每個機架都擁有多個datanode節點

特點:1)同一節點上的程序頻寬大於同一機架上的不同節點頻寬

2)同一機架上的不同節點頻寬大於同一資料中心中不同機架上的節點頻寬

3)同一資料中心中不同機架上的節點頻寬大於不同資料中心中的節點

條件:資料中心d1機架r1中的節點n1,表示為/d1/r1/n1

公式:1)同一節點上的程序

distance(/d1/r1/n1,/d1/r1/n1)=0

2)同一機架上的不同節點

distance(/d1/r1/n1,/d1/r1/n2)=2

3)同一資料中心中不同機架上的節點

distance(/d1/r1/n1,/d1/r2/n3)=4

4)同一資料中心中不同機架上的節點

distance(/d1/r1/n1,/d2/r3/n4)=6

原理:1)如果該block的乙個副本存在於客戶端,則客戶端優先從本地讀取該資料塊

2)如果該block的乙個副本與客戶端在同乙個機架上,且沒有乙個副本存放在客戶端,則客戶端優先讀取這個同機架上的副本

否則客戶端優先讀取同機器的副本,失敗的情況下然後再優先考慮這個同機架上的副本

3)如果該block既沒有乙個副本存在客戶端,又沒有乙個副本與客戶端在同乙個機架上,則隨機選擇乙個datanode節點作為優先節點

方法:1)如果同乙個機架就有這個副本,就直接讀這個

2)如果hdfs集群跨越多個資料中心,客戶端首先讀本地資料中心的副本

原理:1)第乙個副本:放置在上傳檔案的datanode

2)第二個副本:放置在與第乙個副本不同的機架的節點上

3)第三個副本:與第二個副本相同機架的節點

4)更多副本:隨機節點

原理:1)當使用者或應用程式刪除某個檔案時,這個檔案並沒有立馬從hdfs中刪除。實際上,hdfs會將這個檔案重新命名轉移到/tras**件夾

2)僅僅要檔案還在/trash 資料夾中,該檔案就能夠被迅速地恢復

3)檔案在/trash中儲存的時間是可配置的。當超過這個時間時,namenode就會將該檔案從名字空間中刪除。刪除檔案會使得該檔案相關的資料塊被釋放

路徑:在hdfs上的/user/$user/.trash/current/

引數:1)fs.trash.interval

設定保留時間為1440(即為1天)

iOS知識原理篇

weak策略表明該屬性定義了一種 非擁有關係 nonowning relationship 為這種屬性設定新值時,設定方法既不保留新值,也不釋放舊值。此特質同assign類似 然而在屬性所指的物件遭到摧毀時,屬性值也會清空 nil out runtime對註冊的類,會進行布局,會將 weak 物件放...

Dart 基礎篇(二) 基礎知識

語法 main 與其他語言一致,分為單行注釋和多行注釋。在dart語言中,定義變數有三種方式 只能使用一種方式來定義,不能同時使用兩種方式定義乙個變數。通過關鍵字var可以宣告任何型別的變數,dart具有變數型別推斷的能力,乙個變數一旦被初始化,那麼這個變數的型別就確定了,就是這個初始化值的型別!v...

Vue必會知識點 原理篇

響應式的原理 偵測資料的變化,收集檢視依賴了哪些資料,資料變化時,自動 通知 需要更新的檢視部分,並進行更新。三個步驟對應的專業術語就是 資料劫持 資料 依賴收集,發布訂閱模式。網上的vue響應式詳解 資料劫持的核心api object.defineproperty vue3改用的proxy obj...