Hadoop詳解與HDFS讀寫流程

2021-09-24 09:31:28 字數 2598 閱讀 2640

hadoop:包含分布式檔案系統和分布式計算的乙個框架。 hdfs,mapreduce

hadoop專案模組包括4部分:

hadoop common --工具類

hadoop distributed system(hdfs) --分布式檔案系統

hadoop yarn --分布式資源管理

hadoop mapreduce --分布式計算框架

儲存模型:位元組

檔案線性切割成塊block 偏移量offset:塊的第乙個位元組面向原檔案的下標,eg:第乙個塊的偏移量是0

架構模型:主從

檔案資料分為 元資料metadata 和 檔案資料

(主)namenode位元組儲存檔案元資料:單節點 posix

​ 生成目錄樹,不同於ls

(從)datanode位元組儲存檔案block資料:多節點

​ 客戶端hdfsclient先找主再找從

nn資料元資料

基於記憶體儲存 快 不會和磁碟發生交換,但要持久化

​ namenode的metadate資訊在啟動後會載入到記憶體

​ metadata儲存到磁碟檔名為「fsimage」

​ edits記錄對metadata的操作日誌。。。redis

持久化的2種方式:快照 fsimage–需要大量io 寫日誌檔案 edits log-只記錄使用者操作

​ 注意:都不儲存位置資訊,以免客戶端找到主,從沒有啟動,進而沒有檔案陷入等待

namenode主要功能:

​ 接受客戶端的讀寫服務

​ 收集datanode匯報的block列表資訊

​ –namenode儲存metadata資訊包括

​ •檔案owership和permissions •檔案大小,時間

block塊 不可調整大小,不支援修改檔案

​ block列表:block偏移量(穩定值) 不含位置資訊

dn本地磁碟目錄儲存資料(block),檔案形式

dn還有個block塊(md5)儲存元資料資訊,使用者取出資料時外界演算法對比md5以此鑑別資料完整性

block每副本位置由datanode上報 副本 同等級 含義類轉殖

副本放置策略/機架策略:

​ 第乙個副本和第二個副本不在同乙個機架上,第三個副本放置在和第二個副本相同機架節點

啟動dn時會向nn匯報block資訊

dn向nn傳送心跳保持與其聯絡3s/次 10min lost 此時需要copy其上的block到其他dn

安全模式

snn不是nn的備份(但可以做備份),它的主要工作是幫助nn合併edits log,減少nn啟動時間。

snn執行合併時機

​ •根據配置檔案設定的時間間隔fs.checkpoint.period 預設3600秒

​ •根據配置檔案設定edits log大小 fs.checkpoint.size 規定edits檔案的最大值預設是64mb

hdfs優點

–高容錯性

​ •資料自動儲存多個副本 • 副本丟失後,自動恢復

–適合批處理

​ •移動計算而非資料 •資料位置暴露給計算框架(block偏移量)

–適合大資料處理

​ •gb 、tb 、甚至pb 級資料 •百萬規模以上的檔案數 •10k+ 節點

–可構建在廉價機器上

​ •通過多副本提高可靠性 •提供了容錯和恢復 機制

hdfs缺點

–低延遲資料訪問

​ •比如毫秒級 •低延遲與高吞吐率

–小檔案訪問

​ •占用namenode 大量記憶體 •尋道時間超過讀取時間

–併發寫入、檔案隨機修改

寫流程

注意:​ 將大檔案分成小包並(管道/同時)分給每個dn上的塊

​ 由心跳匯報情況給nn,若dn壞1,2個則nn自動發布命令採用新的dn寫入

讀流程注意:

​ 距離優先(離客戶端近的先讀取,在本地的讀本地)nn會返回給客戶端距離列表,近的先讀,讀完客戶端進行儲存,再讀下乙個dn

​ 讀取時可以讀取任意塊的能力,可以在某塊上進行計算資料,因此hdfs很好的支撐了計算層的本地化讀取

使用shell命令執行hadoop自帶的wordcount

首先切換到/data目錄下,使用vim編輯乙個data.txt檔案,內容為(hello world hello hadoop hello ipieuvre)

cd /data

vim data.txt

在hdfs的根下建立in目錄,並將/data下的data.txt檔案上傳到hdfs中的in目錄

hdfs讀寫流程 HDFS 讀寫流程(詳解)

hdfs hadoop distributed file system 是gfs的開源實現。1 優點 因為有多個副本,可以保證資料可靠,容錯性高 計算向資料移動,適用於批處理 適合大資料處理,gb tb pb級資料,百萬以上的檔案,十萬以上的節點 可以構建在廉價機器上,通過多副本提高可靠性 2 缺點...

Hadoop啟蒙 HDFS讀寫流程

hdfs是基於谷歌的 gfs 的開源實現的乙個分布式檔案系統。優點 適合儲存大量資料。可以執行在廉價計算機上。易擴充套件 高容錯。缺點 不支援修改,只能追加。小檔案過多會降低效能,會導致記憶體中的元資料量增多,會對mapreduce計算造成影響。乙個檔案同一時間只能乙個客戶端操作。namenode ...

HDFS的讀寫詳解

1 使用 hdfs 提供的客戶端 client,向遠端的 namenode 發起 rpc 請求 2 namenode 會檢查要建立的檔案是否已經存在,建立者是否有許可權進行操作,成功則會 為檔案建立乙個記錄,否則會讓客戶端丟擲異常 3 當客戶端開始寫入檔案的時候,客戶端會將檔案切分成多個 packe...