hdfs架構設計
程序namenode nn 名稱節點
secondary namenode snn 第二名稱節點
datanode dn 資料節點
主從架構
rack : 機架 可以放多個主機 10個 gpu主機 5個
nn: 檔案系統的命名空間
a.檔名稱
b.檔案目錄結構
c.檔案屬性 建立時間 許可權 副本數
d.檔案對應哪些資料塊
-->資料塊對應哪些datanode節點上
blockmap
nn節點不會持久化儲存這種對映關係
dn定期傳送blockreport 給nn,
以此nn在【記憶體】中動態維護這種對映關係!
假設 nn 8g記憶體,如果小檔案很多會撐爆了記憶體
(生產上 hdfs不適合儲存小檔案?為什麼不合適?如果真的有小檔案,該怎麼辦?該怎麼合併)
1個小檔案: nn節點需要250位元組
1億: 1億*250位元組 大
假如真的有小檔案 合併
100小檔案合併乙個大檔案 : nn節點需要300位元組
1億/100 * 300位元組 小
建議: 合併為乙個檔案盡量在塊大小 120m <=128m
作用:管理檔案系統的命名空間,
維護檔案系統樹,以兩種檔案永久儲存在磁碟上
命名空間映象檔案 fsimage
編輯日誌editlog
[root@hadoop001 current]# pwd
/tmp/hadoop-root/dfs/name/current
[root@hadoop001 current]# ll
total 1040
-rw-r--r--. 1 root root 1048576 feb 17 20:23 edits_inprogress_0000000000000000001
-rw-r--r--. 1 root root 321 feb 17 19:23 fsimage_0000000000000000000
-rw-r--r--. 1 root root 62 feb 17 19:23 fsimage_0000000000000000000.md5
-rw-r--r--. 1 root root 2 feb 17 19:23 seen_txid
-rw-r--r--. 1 root root 219 feb 17 19:23 version
[root@hadoop001 current]#
dn:儲存: 資料塊 和資料塊的校驗和
與nn通訊:
a.每隔3秒傳送乙個心跳
hadoop001:50070
b.每10次心跳傳送一次當前節點的blockreport
作用: 讀寫檔案的資料塊
snn:
儲存: fsiamge+editlog
作用: 定期合併fsimage+editlog檔案為新的fsimage檔案
推送個nn節點,簡稱為檢查點 checkpoint
引數 :
snn對nn每一小時備份一次,如果nn在12點30掛了,檔案損壞,那麼12點到12點半的資料相當於的資料snn沒有備份,用snn恢復只能恢復到12點的資料,所以這種架構是不可靠的,這種架構是在hadoop1.x上的架構,後邊有出現了ha,他有兩個nn,做了實時的熱備,snn相當於做了乙個冷備,ha如果乙個節點nn掛了,另乙個nn瞬間起來,對外提供服務。
editlog: 讀寫的記錄
fsiamge: 讀寫的記錄
所在目錄/tmp/hadoop-root/dfs/name/current
secondarynamenode就是用來備份編輯日誌和映象檔案的
salesforce 架構設計 從架構設計到架構師
因為碎片化的時間多了,所以開始刷起某乎了,關注了架構相關的板塊,也順手回答了一些問題。發現有很多同道中人正在經歷著我前兩年經歷的階段,對於做架構沒有相對具象的一些理解,更沒有系統化的認識。所以把最近回答的一些內容整理一下,權當記錄,留給3年後的自己 按慣例,容許我裝x開頭 一 架構的定義 在軟體開發...
mysql架構設計 初識mysql架構設計
一 應用系統如何與mysql進行一次互動?最開始接觸jdbc的時候,我們系統如何完成一次sql操作呢?第一步,建立資料庫連線 第二步,操作sql 第三步,釋放連線。但是每次建立與資料庫的連線非常耗時和資源,所以我們加入了連線池的概念。第一步的獲取連線是從連線池中獲取乙個可用的連線,第三步的釋放連線不...
軟體架構設計 二 系統總體架構設計
系統總體架構非常重要,但在表達上都不盡相同,下面介紹幾種常用的系統架構模式,供參考 assf access service biz standard fundation 模式 訪問 服務 業務功能 標準 基礎,對系統架構各個層次均有表達,但部署應用模式需要有單獨說明,如下圖方式組織系統總體架構 lo...