大資料2 10 HDFS概述和資料流

2021-10-24 22:23:55 字數 2168 閱讀 9198

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

hdfs適合一次寫入、多次讀出,不支援檔案修改,可以追加。

namenode(nn):名稱節點

儲存元資料

管理hdfs的命名空間,配置副本策略,管理塊block,處理客戶端讀寫請求。

datanode(dn):資料節點

儲存實際資料,儲存的位置在/opt/module/hadoop-3.1.3/data/dfs/data下。

sercondarynamenode(2nn):第二名稱節點

namenode的助手,不是namenode的熱備份,當namenode宕機不能頂替namenode工作,可以幫助恢復namenode

hdfs檔案在物理上是分塊儲存的,在hadoop2x - hadoop3x的版本中乙個塊是128m,之前的老版本是64.

hdfs檔案塊的大小為什麼不能設定太大?為什麼不能設定太小?原因:

檔案塊太小,塊太多了會增加定址時間。

檔案塊太大,定址塊了,但是從磁碟傳輸資料的時間會太長,導致程式處理這個資料太慢。

總結:hdfs塊的大小取決於磁碟的傳輸速度。

(1)客戶端通過distributed filesystem模組向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。

(2)namenode相應是否可以上傳。

(3)客戶端請求第乙個 block上傳到哪幾個datanode伺服器上。

(4)namenode返回3個datanode節點,分別為dn1、dn2、dn3。

如何選擇3個節點?選擇距離namenode距離最近的datanode接收資料。(網路拓撲-節點距離計算。)

(5)客戶端通過fsdataoutputstream模組請求dn1上傳資料,dn1收到請求會繼續呼叫dn2,然後dn2呼叫dn3,將這個通訊管道建立完成。

為什麼要用這種通訊管道的方式上傳資料?如果客戶端連線dn1,dn2,dn3併聯的方式傳輸,io壓力太大,每個人都傳輸乙份資料,傳輸效率也低。只傳給dn1,效率會高,傳輸過程dn2也會和dn3傳輸。

(6)dn1、dn2、dn3逐級應答客戶端。

(7)客戶端開始往dn1上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位,dn1收到乙個packet就會傳給dn2,dn2傳給dn3;dn1每傳乙個packet會放入乙個應答佇列等待應答。

(8)當乙個block傳輸完成之後,客戶端再次請求namenode上傳第二個block的伺服器。(重複執行3-7步)。

(2)namenode通過查詢元資料,找到檔案塊所在的datanode節點,挑選一台datanode,就近原則。

(3)客戶端根據namenode返回的datanode傳送請求。分塊請求。

(4)datanode傳輸給客戶端。

真正的資料塊儲存在datanode的這個路徑下:

hdfs 指令 大資料科普系列 五 HDFS概述

hdfs hadoop distributed file system hadoop分布式檔案系統,主要用來解決海量資料的儲存問題,在大資料系統架構中為各類分布式運算框架 mapreduce spark tez,flink等 提供資料儲存服務。前面我們已經講過分布式的儲存原理,下面來看看hdfs具體...

獲取hdfs (大資料)HDFS

hdfs 是 hadoop 的分布式檔案系統,主要用於離線的大檔案資料資料儲存。hdfs 架構 hdfs 其實與作業系統的檔案系統類似,hdfs 主要有兩種角色,乙個是 namenode 檔案索引 另乙個是 datanode 儲存資料 namenode 主要負責記錄乙個檔案的儲存元資料 例如 檔名 ...

大資料 學習hdfs

hdfs是什麼?hadoop distributed file system,它是一種分布式檔案儲存系統,主要解決大資料的儲存問題。hdfs的優缺點 優點 缺點 hdfs的主要角色 namenode 簡稱nn 是hdfs的核心節點,最重要 主要功能是 接收客戶端的讀寫請求,接收datanode傳送的...