hdfs架構設計: 主從
nn 主 名稱節點 扮演老大的角色
snn 第二名稱節點 --》nn 扮演二把手的角色
dn 從 資料節點 扮演小弟的角色
dfs.blocksize : 134217728 / 128m 不滿128m也算乙個塊
例如:hdfs-site.xml
下的引數dfs.replication 為1
, 在生產上一般是3 , 指的是乙個塊的複製數
我們來看看這幾個程序分別做什麼事?
nn
: 是檔案系統的命名空間
作用
:
管理檔案系統的命名空間,維護檔案系統樹,以兩種檔案永久儲存在磁碟。
a
. 命名空間映象檔案fsimage
b
. 編輯日誌editlog
dn
: 儲存資料塊和塊的校驗和
與nn通訊: 很多大資料框架都是通過netty做的
儲存:fsimage + editlog
作用: 定期合併fsimage+editlog
檔案為新的fsimage
,推送給nn,稱檢查點,checkpoint
檢查點引數:
dfs.namenode.checkpoint.period: 3600 (name checkpoint的週期為3600秒),即老大掛掉的話我可以備份乙個小時之內的檔案,就是這樣的乙個關係(定期備份)
fsimage
: 映象檔案 檔案系統樹 全量 14:00
editlog
:操作日誌 讀寫的操作記錄 增量 14:40-14:30
那麼增量怎麼變成全量呢,—> snn做的事
例如:snn在15:00時,會將14:00的fsimage + 14:00~15:00的editlog 合併成乙個新的image —> 15:00 fsimage
snn流程圖
資料是以塊儲存在datanode節點
第乙個副本:
假設我提交檔案的所在機器就是datanode節點,
那麼第乙個塊就儲存在本節點上;
如果不是,就隨機挑選一台磁碟不太慢的 cpu不太繁忙的節點上;(老大知道,因為小弟會定時心跳的,會發訊息給老大)
如果沒有機架的話,另外兩塊分別就放在該機架的兩台不同機器上,如果有另外機架時:
第二個副本:
放置在於第乙個副本的不同的機架的節點上
第三個副本:
與第二個副本相同的機架的不同的節點上
假如將ruozedata.log
傳到linux機器上的/user/hadoop/day01/
目錄下,
hdfs dfs -put ruozedata.log /user/hadoop/day01/
在提交時,
大資料 學習hdfs
hdfs是什麼?hadoop distributed file system,它是一種分布式檔案儲存系統,主要解決大資料的儲存問題。hdfs的優缺點 優點 缺點 hdfs的主要角色 namenode 簡稱nn 是hdfs的核心節點,最重要 主要功能是 接收客戶端的讀寫請求,接收datanode傳送的...
大資料學習 關於hdfs
高容錯性 適合處理大資料 可構建在廉價機器上 不適合低延時資料訪問 無法高效的對大量小檔案進行儲存 儲存大量小檔案的話,它會占用namenode大量的記憶體來儲存檔案目錄和塊資訊。小檔案儲存的定址時間會超過讀取時間 不支援併發寫入 檔案隨機修改 乙個檔案只能有乙個寫,不允許多個執行緒同時寫 data...
獲取hdfs (大資料)HDFS
hdfs 是 hadoop 的分布式檔案系統,主要用於離線的大檔案資料資料儲存。hdfs 架構 hdfs 其實與作業系統的檔案系統類似,hdfs 主要有兩種角色,乙個是 namenode 檔案索引 另乙個是 datanode 儲存資料 namenode 主要負責記錄乙個檔案的儲存元資料 例如 檔名 ...