Hadoop分布式文件系統(tǒng)(HDFS)是一種被設計成適合運行在通用硬件上的分布式文件系統(tǒng)悉罕。HDFS是一個高度容錯性的系統(tǒng)拓哺,適合部署在廉價的 機器上表悬。它能提供高吞吐量的數據訪問胜卤,非常適合大規(guī)模數據集上的應用。
Name nodes
在 HDFS 里综膀, Name node 保存了整個文件系統(tǒng)信息澳迫,包括文件和文件夾的結構。其實和 linux 上的真的很像剧劝, HDFS 也是把文件和文件夾表示為 inode, 每個 inode 有自己的所有者橄登,權限,創(chuàng)建和修改時間等等讥此。HDFS 可以存很大的文件拢锹,所以每個文件都被分成一些 data block,存在不同機器上, name node 就負責記錄一個文件有哪些 data block萄喳,以及這些 data block 分別存放在哪些機器上卒稳。
Name nodes 還負責管理文件系統(tǒng)常用操作,比如創(chuàng)建一個文件取胎,重命名一個文件展哭,創(chuàng)建一個文件夾,重命名一個文件夾等闻蛀。
當我們通過 HDFS client 向 HDFS 讀取或者寫文件時匪傍,所有的讀寫請求都是先發(fā)給 Name nodes, 它負責創(chuàng)建或者查詢一個文件,然后再讓 HDFS client 和 Data nodes 聯系具體的數據傳輸觉痛。
Data Nodes
存儲 data block 的機器叫做 Data nodes. 在讀寫過程中役衡,Data nodes 負責直接把用戶讀取的文件 block 傳給 client,也負責直接接收用戶寫的文件薪棒。
當我們讀取一個文件時:
HDFS client 聯系 Name nodes手蝎,獲取文件的 data blocks 組成、以及每個 data block 所在的機器以及具體存放位置俐芯;
HDFS client 聯系 Data nodes, 進行具體的讀寫操作棵介;