Hadoop中HDFS工作原理

2022-02-18 23:55:25 字數 3561 閱讀 9048

**:

hadoop其實並不是乙個產品,而是一些獨立模組的組合。主要有分布式檔案系統hdfs和大型分布式資料處理庫mapreduce。由於目前主要用到hdfs,所以這裡看一下它的工作原理,以及相應的介紹下配置。

什麼是hdfs?hadoop distributed file system,字面意思,hadoop分布式檔案系統,通俗的講,就是可以將不同節點的裝置用來儲存。它分為兩個部分:namenode和datenode,namenode相當於乙個領導,它管理集群內的datanode,當客戶傳送請求過來後,namenode會根據情況指定儲存到哪些datanode上,而其本身自己並不儲存真實的資料。那namenode怎麼知道集群內datanode的資訊呢?datanode傳送心跳資訊給namenode。

下面工作原理我就直接copy了。。

工作原理

寫操作:

有乙個檔案filea,100m大小。client將filea寫入到hdfs上。

hdfs按預設配置。

hdfs分布在三個機架上rack1,rack2,rack3。

a.client將filea按64m分塊。分成兩塊,block1和block2;

b.client向namenode傳送寫資料請求,如圖藍色虛線①------>。

c.namenode節點,記錄block資訊。並返回可用的datanode,如粉色虛線②--------->。

block1: host2,host1,host3

block2: host7,host8,host4

原理:namenode具有rackaware機架感知功能,這個可以配置。

若client為datanode節點,那儲存block時,規則為:副本1,同client的節點上;副本2,不同機架節點上;副本3,同第二個副本機架的另乙個節點上;其他副本隨機挑選。

若client不為datanode節點,那儲存block時,規則為:副本1,隨機選擇乙個節點上;副本2,不同副本1,機架上;副本3,同副本2相同的另乙個節點上;其他副本隨機挑選。

d.client向datanode傳送block1;傳送過程是以流式寫入。

流式寫入過程,

1>將64m的block1按64k的package劃分;

2>然後將第乙個package傳送給host2;

3>host2接收完後,將第乙個package傳送給host1,同時client想host2傳送第二個package;

4>host1接收完第乙個package後,傳送給host3,同時接收host2發來的第二個package。

5>以此類推,如圖紅線實線所示,直到將block1傳送完畢。

6>host2,host1,host3向namenode,host2向client傳送通知,說「訊息傳送完了」。如圖粉紅顏色實線所示。

7>client收到host2發來的訊息後,向namenode傳送訊息,說我寫完了。這樣就真完成了。如圖黃色粗實線

8>傳送完block1後,再向host7,host8,host4傳送block2,如圖藍色實線所示。

9>傳送完block2後,host7,host8,host4向namenode,host7向client傳送通知,如圖淺綠色實線所示。

10>client向namenode傳送訊息,說我寫完了,如圖黃色粗實線。。。這樣就完畢了。

分析,通過寫過程,我們可以了解到:

寫1t檔案,我們需要3t的儲存,3t的網路流量貸款。

在執行讀或寫的過程中,namenode和datanode通過heartbeat進行儲存通訊,確定datanode活著。如果發現datanode死掉了,就將死掉的datanode上的資料,放到其他節點去。讀取時,要讀其他節點去。

掛掉乙個節點,沒關係,還有其他節點可以備份;甚至,掛掉某乙個機架,也沒關係;其他機架上,也有備份。

ok,複製到此結束,我們結合配置檔案具體了解一下:

core-site.xml,核心配置檔案

fs.defaultfs

the name of the default file system.  a uri whose

scheme and authority determine the filesystem implementation.  the

uri's scheme determines the config property (fs.scheme.impl) naming

the filesystem implementation class.  the uri's authority is used to

determine the host, port, etc. for a filesystem.

hadoop.tmp.dir

/home/cdh/cdh/hadoop-2.0.0-cdh4.2.1/tmp(注:這個屬性值請根據實際情況修改,這裡需要預先手動在/home/cdh/cdh/hadoop-2.0.0-cdh4.2.1路徑下建立tmp資料夾。secondarynamenode的目錄系統預設為$/dfs/namesecondary,如果沒有配置hadoop.tmp.dir引數,此時系統預設的臨時目錄為:/tmp/hadoop-cdh。而這個目錄在每次重啟後都會被乾掉,必須重新執行format才行,否則會出錯。)

a base for other temporary directories.

修改為:

dfs.namenode.name.dir

file:/data/hadoop-2.0.0/workspace/hadoop_space/hadoop23/dfs/name

(這個是配置namenode目錄的地方)

true

dfs.datanode.data.dir

file:/data/hadoop-2.0.0/workspace/hadoop_space/hadoop23/dfs/data

(這個是配置datanode目錄的地方,也就是datanode儲存檔案的路徑)

true

dfs.replication

(這個是配置備份因子)

10.10.129.186:50090(注:配置secondarynamenode的ip和埠號)

簡述hdfs工作原理 HDFS的工作原理

hdfs 的工作原理 hadoop 分布式檔案系統 hdfs 是一種被設計成適合執行在通用硬體上的分布式檔案系統。hdfs 是乙個高度容錯性的系統,適合部署在廉價的 機器上。它能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。要理解 hdfs 的內部工作原理,首先要理解什麼是分布式 檔案系統。...

hadoop學習筆記 HDFS原理

文章內容摘自書籍,網際網路的部落格的一些集合和個人的理解。hdfs原理 hadoop提供了可靠的共享儲存和分析的系統,hdfs實現儲存,mapreduce實現分析處理,這兩部分是hadoop的核心,由於hdfs是為了高資料吞吐量而優化的,是以高時間延遲為代價,所以要求低延遲的資料訪問應用不適合在hd...

HDFS的工作原理

目錄 核心知識 hdfs寫資料流程 hdfs讀資料流程 secondarynamenode元資料checkpoint機制 1.hdfs集群分為兩大角色 namenode datanode secondary namenode 2.namenode負責管理整個檔案系統的元資料 3.datanode 負...