成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HDFS是如何設(shè)計(jì)架構(gòu)的?

大數(shù)據(jù)
Hadoop到目前為止發(fā)展已經(jīng)有10余年,版本經(jīng)過無數(shù)次的更新迭代,目前業(yè)內(nèi)大家把Hadoop大的版本分為Hadoop1.0、Hadoop2.0、Hadoop3.0 三個(gè)版本。

 [[378843]]

前言

Hadoop到目前為止發(fā)展已經(jīng)有10余年,版本經(jīng)過無數(shù)次的更新迭代,目前業(yè)內(nèi)大家把Hadoop大的版本分為Hadoop1.0、Hadoop2.0、Hadoop3.0 三個(gè)版本。

一、Hadoop 簡介

Hadoop版本剛出來的時(shí)候是為了解決兩個(gè)問題:一是海量數(shù)據(jù)如何存儲(chǔ)的問題,一個(gè)是海量數(shù)據(jù)如何計(jì)算的問題。Hadoop的核心設(shè)計(jì)就是HDFS和 Mapreduce.HDFS解決了海量數(shù)據(jù)如何存儲(chǔ)的問題, Mapreduce解決了海量數(shù)據(jù)如何計(jì)算的問題。HDFS的全稱:Hadoop Distributed File System。

二、分布式文件系統(tǒng)

圖片 HDFS其實(shí)就可以理解為一個(gè)分布式文件系統(tǒng),可以看如圖1所示有4個(gè)服務(wù)器是不是都有他自己的文件系統(tǒng)都可以進(jìn)行存儲(chǔ)數(shù)據(jù),假設(shè)每個(gè)服務(wù)器的存儲(chǔ)空間存儲(chǔ)10G的數(shù)據(jù)。假設(shè)數(shù)據(jù)量很小的時(shí)候存儲(chǔ)10G的數(shù)據(jù)還是ok的當(dāng)數(shù)據(jù)量大于服務(wù)器的存儲(chǔ)空間時(shí)是不是單個(gè)服務(wù)器就沒法存儲(chǔ)了。 我們是不是可以在服務(wù)器中部署一個(gè)Hadoop這樣就能構(gòu)建出一個(gè)集群(超級(jí)大電腦)。這樣就存儲(chǔ) 4*10=40G的數(shù)據(jù)量,這樣我們面向用戶時(shí)是不是只有一臺(tái)超級(jí)大的電腦相當(dāng)于一個(gè)分布式文件系統(tǒng)。

HDFS是一個(gè)主從的架構(gòu)、主節(jié)點(diǎn)只有一個(gè)NemeNode。從節(jié)點(diǎn)有多個(gè)DataNode。

三、HDFS 架構(gòu)

圖片 假設(shè)我們這里有5臺(tái)服務(wù)器每臺(tái)服務(wù)器都部署上Hadoop,我們隨便選擇一臺(tái)服務(wù)器部署上NameNode剩下服務(wù)器部署上DataNode。

客戶端上傳文件時(shí)假設(shè)文件大小為129MHDFS默認(rèn)切分的大小為128M這時(shí)就會(huì)產(chǎn)生出2個(gè)blkNameNode去通知DataNode上傳文件(這里有一定的策略),我們就假設(shè)就將這幾個(gè)文件分別存儲(chǔ)在4個(gè)服務(wù)器上。為什們要進(jìn)行分別存儲(chǔ)在,假設(shè)DataNode服務(wù)器有一天突然掛掉了我們是不是還可通過DataNode4或2和3進(jìn)行讀取數(shù)據(jù),這樣是不是就防止數(shù)據(jù)丟失。

NameNode

  • 管理元數(shù)據(jù)信息(文件目錄樹):文件與Block塊,Block塊與DataNode主機(jī)關(guān)系
  • NameNode為快速響應(yīng)用戶操作,所以把元數(shù)據(jù)信息加載到內(nèi)存里

DataNode

  • 存儲(chǔ)數(shù)據(jù),把上傳的數(shù)據(jù)劃分固定大小文件塊(Block)在Hadoop2.73之前是64M之后改為了128M
  • 為了保證數(shù)據(jù)安全,每個(gè)文件默認(rèn)都是三個(gè)副本

SecondaryNamenode

周期性的到NameNode節(jié)點(diǎn)拉取Edtis和fsimage文件,將這兩個(gè)文件加入到內(nèi)存進(jìn)行 然后將這兩個(gè)文件加入到內(nèi)存中進(jìn)行合并產(chǎn)生新的fsimage發(fā)送給NameNode。

四、HDFS寫入數(shù)據(jù)流程

  1. 客戶端會(huì)帶著文件路徑向NameNode發(fā)送寫入請求通過 RPC 與 NameNode 建立通訊, NameNode 檢查目標(biāo)文件,返回是否可以上傳;
  2. Client 請求第一個(gè) block 該傳輸?shù)侥男?DataNode 服務(wù)器上;
  3. NameNode 根據(jù)副本數(shù)量和副本放置策略進(jìn)行節(jié)點(diǎn)分配,返回DataNode節(jié)點(diǎn),如:A,B,C
  4. Client 請求A節(jié)點(diǎn)建立pipeline管道,A收到請求會(huì)繼續(xù)調(diào)用B,然后B調(diào)用C,將整個(gè)pipeline管道建立完成后,逐級(jí)返回消息到Client;
  5. Client收到A返回的消息之后開始往A上傳第一個(gè)block塊,block塊被切分成64K的packet包不斷的在pepiline管道里傳遞,從A到B,B到C進(jìn)行復(fù)制存儲(chǔ)
  6. 當(dāng)一個(gè) block塊 傳輸完成之后,Client 再次請求 NameNode 上傳第二個(gè)block塊的存儲(chǔ)節(jié)點(diǎn),不斷往復(fù)存儲(chǔ)
  7. 當(dāng)所有block塊傳輸完成之后,Client調(diào)用FSDataOutputSteam的close方法關(guān)閉輸出流,最后調(diào)用FileSystem的complete方法告知NameNode數(shù)據(jù)寫入成功

五、HDFS讀取數(shù)據(jù)流程

  1. 客戶端會(huì)先帶著讀取路徑向NameNode發(fā)送讀取請求,通過 RPC 與 NameNode 建立通訊,NameNode檢查目標(biāo)文件,來確定請求文件 block塊的位置信息
  2. NameNode會(huì)視情況返回文件的部分或者全部block塊列表,對于每個(gè)block塊,NameNode 都會(huì)返回含有該 block副本的 DataNode 地址
  3. 這些返回的 DataNode 地址,會(huì)按照集群拓?fù)浣Y(jié)構(gòu)得出 DataNode 與客戶端的距離,然后進(jìn)行排序,排序兩個(gè)規(guī)則:網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中距離 Client 近的排靠前;心跳機(jī)制中超時(shí)匯報(bào)的 DN 狀態(tài)為 STALE,這樣的排靠后;
  4. Client 選取排序靠前的 DataNode 調(diào)用FSDataInputSteam的read方法來讀取 block塊數(shù)據(jù),如果客戶端本身就是DataNode,那么將從本地直接獲取block塊數(shù)據(jù)
  5. 當(dāng)讀完一批的 block塊后,若文件讀取還沒有結(jié)束,客戶端會(huì)繼續(xù)向NameNode 獲取下一批的 block 列表,繼續(xù)讀取
  6. 所有block塊讀取完成后,Client調(diào)用FSDataInputStream.close()方法,關(guān)閉輸入流,并將讀取來所有的 block塊合并成一個(gè)完整的最終文件

六、HDFS缺陷

注意:早期版本

  1. 單點(diǎn)問題
  2. 內(nèi)存受限

總結(jié)

上述給大家講解了簡單的HDFS架構(gòu),我在最后面留了一個(gè)小問題,我會(huì)在下期通過畫圖的方式給大家講解,我在這里為大家提供大數(shù)據(jù)的資料需要的朋友可以去下面GitHub去下載,信自己,努力和汗水總會(huì)能得到回報(bào)的。我是大數(shù)據(jù)老哥,我們下期見~~~

本文轉(zhuǎn)載自微信公眾號(hào)「大數(shù)據(jù)老哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系大數(shù)據(jù)老哥公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 大數(shù)據(jù)老哥
相關(guān)推薦

2020-05-14 14:52:05

HDFS數(shù)據(jù)集架構(gòu)

2021-01-30 19:35:44

HDFS單點(diǎn)Hadoop

2015-04-16 14:24:56

Hadoop云計(jì)算HDFS

2025-02-03 08:00:00

HDFS架構(gòu)存儲(chǔ)數(shù)據(jù)

2021-07-06 06:39:58

Kafka消息隊(duì)列系統(tǒng)

2023-12-30 08:27:13

2024-05-10 09:36:36

架構(gòu)消息隊(duì)列

2024-11-14 08:08:14

2021-11-08 06:57:35

Redis架構(gòu)設(shè)計(jì)

2025-05-27 10:15:00

Go開發(fā)軟件架構(gòu)

2020-12-08 11:17:41

微內(nèi)核架構(gòu)設(shè)計(jì)

2012-07-11 17:21:23

HadoopHDFS

2017-02-11 09:58:19

2012-03-08 11:09:26

企業(yè)架構(gòu)

2023-10-07 08:41:42

JavaJVM

2011-12-28 13:30:39

云計(jì)算云存儲(chǔ)

2023-11-30 10:13:17

TensorRT架構(gòu)

2024-04-30 09:53:12

axios架構(gòu)適配器

2024-04-24 07:00:00

Redis架構(gòu)數(shù)據(jù)持久化

2017-09-13 13:42:09

微服務(wù)緩存架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久久久尿 | 中文字幕日韩欧美 | 天天曰夜夜操 | 在线视频成人 | 欧美亚洲一级 | 91中文字幕| 91中文在线观看 | 国产精品久久久久久亚洲调教 | 一区二区亚洲 | 青青草一区二区三区 | 久久久久国产精品午夜一区 | 欧美精品一区二区三区四区五区 | 亚洲欧美国产视频 | 欧美成人免费在线视频 | 最新国产在线 | 日韩中文字幕在线观看视频 | 精品视频一区二区三区在线观看 | 国产一二三区免费视频 | 视频一区二区在线观看 | 国产成人精品一区二区三区四区 | 成年人网站国产 | 日韩在线播放视频 | 日韩精品中文字幕一区二区三区 | 亚洲福利精品 | 免费毛片网站 | 成人在线免费看 | 欧美成人一区二区三区 | 中文字幕精品一区 | 亚洲免费视频播放 | 欧美福利久久 | 久久精品欧美一区二区三区不卡 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | caoporn国产精品免费公开 | 午夜黄色 | 免费一区| 中文字幕av网址 | 91麻豆精品国产91久久久更新资源速度超快 | 免费黄色片在线观看 | 99精品国产一区二区三区 | 久久久久国产一区二区三区四区 | 成人在线观看免费 |