色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分布式文件系統(tǒng)的HDFS是什么

汽車玩家 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-05-04 09:36 ? 次閱讀

一、HDFS介紹

上篇文章已經(jīng)講到了,隨著數(shù)據(jù)量越來越大,在一臺(tái)機(jī)器上已經(jīng)無法存儲(chǔ)所有的數(shù)據(jù)了,那我們會(huì)將這些數(shù)據(jù)分配到不同的機(jī)器來進(jìn)行存儲(chǔ),但是這就帶來一個(gè)問題:不方便管理和維護(hù)

所以,我們就希望有一個(gè)系統(tǒng)可以將這些分布在不同操作服務(wù)器上的數(shù)據(jù)進(jìn)行統(tǒng)一管理,這就有了分布式文件系統(tǒng)

HDFS是分布式文件系統(tǒng)的其中一種(目前用得最廣泛的一種)

在使用HDFS的時(shí)候是非常簡單的:雖然HDFS是將文件存儲(chǔ)到不同的機(jī)器上,但是我去使用的時(shí)候是把這些文件當(dāng)做是存儲(chǔ)在一臺(tái)機(jī)器的方式去使用(背后卻是多臺(tái)機(jī)器在執(zhí)行):

好比:我調(diào)用了一個(gè)RPC接口,我給他參數(shù),他返回一個(gè)response給我。RPC接口做了什么事其實(shí)我都不知道的(可能這個(gè)RPC接口又調(diào)了其他的RPC接口)-----屏蔽掉實(shí)現(xiàn)細(xì)節(jié),對用戶友好

分布式文件系統(tǒng)的HDFS是什么

明確一下:HDFS就是一個(gè)分布式文件系統(tǒng),一個(gè)文件系統(tǒng),我們用它來做什么?存數(shù)據(jù)呀。

下面,我們來了解一下HDFS的一些知識(shí),能夠幫我們更好地去「使用」HDFS

二、HDFS學(xué)習(xí)

從上面我們已經(jīng)提到了,HDFS作為一個(gè)分布式文件系統(tǒng),那么它的數(shù)據(jù)是保存在多個(gè)系統(tǒng)上的。例如,下面的圖:一個(gè)1GB的文件,會(huì)被切分成幾個(gè)小的文件,每個(gè)服務(wù)器都會(huì)存放一部分。

分布式文件系統(tǒng)的HDFS是什么

那肯定會(huì)有人會(huì)問:那會(huì)切分多少個(gè)小文件呢?默認(rèn)以128MB的大小來切分,每個(gè)128MB的文件,在HDFS叫做塊(block)

顯然,這個(gè)128MB大小是可配的。如果設(shè)置為太小或者太大都不好。如果切分的文件太小,那一份數(shù)據(jù)可能分布到多臺(tái)的機(jī)器上(尋址時(shí)間就很慢)。如果切分的文件太大,那數(shù)據(jù)傳輸時(shí)間的時(shí)間就很慢。

PS:老版本默認(rèn)是64MB

一個(gè)用戶發(fā)出了一個(gè)1GB的文件請求給HDFS客戶端,HDFS客戶端會(huì)根據(jù)配置(現(xiàn)在默認(rèn)是128MB),對這個(gè)文件進(jìn)行切分,所以HDFS客戶端會(huì)切分為8個(gè)文件(也叫做block),然后每個(gè)服務(wù)器都會(huì)存儲(chǔ)這些切分后的文件(block)。現(xiàn)在我們假設(shè)每個(gè)服務(wù)器都存儲(chǔ)兩份。

分布式文件系統(tǒng)的HDFS是什么

這些存放真實(shí)數(shù)據(jù)的服務(wù)器,在HDFS領(lǐng)域叫做DataNode

分布式文件系統(tǒng)的HDFS是什么

現(xiàn)在問題來了,HDFS客戶端按照配置切分完以后,怎么知道往哪個(gè)服務(wù)器(DataNode)放數(shù)據(jù)呢?這個(gè)時(shí)候,就需要另一個(gè)角色了,管理者(NameNode)。

NameNode實(shí)際上就是管理文件的各種信息(這種信息專業(yè)點(diǎn)我們叫做MetaData「元數(shù)據(jù)」),其中包括:文文件路徑名,每個(gè)Block的ID和存放的位置等等。

所以,無論是讀還是寫,HDFS客戶端都會(huì)先去找NameNode,通過NameNode得知相應(yīng)的信息,再去找DataNode

如果是寫操作,HDFS切分完文件以后,會(huì)詢問NameNode應(yīng)該將這些切分好的block往哪幾臺(tái)DataNode上寫。

如果是讀操作,HDFS拿到文件名,也會(huì)去詢問NameNode應(yīng)該往哪幾臺(tái)DataNode上讀數(shù)據(jù)。

分布式文件系統(tǒng)的HDFS是什么

2.1 HDFS備份

作為一個(gè)分布式系統(tǒng)(把大文件切分為多個(gè)小文件,存儲(chǔ)到不同的機(jī)器上),如果沒有備份的話,只要有其中的一臺(tái)機(jī)器掛了,那就會(huì)導(dǎo)致「數(shù)據(jù)」是不可用狀態(tài)的。

寫到這里,如果看過我的Kafka和ElasticSearch的文章可能就懂了。其實(shí)思想都是一樣的。

Kafka對partition備份,ElasticSearch對分片進(jìn)行備份,而到HDFS就是對Block進(jìn)行備份。

盡可能將數(shù)據(jù)備份到不同的機(jī)器上,即便某臺(tái)機(jī)器掛了,那就可以將備份數(shù)據(jù)拉出來用。

對Kafka和ElasticSearch不了解的同學(xué),可以關(guān)注我的GitHub,搜索關(guān)鍵字即可查詢(我覺得還算寫得比較通俗易懂的)

注:這里的備份并不需要HDFS客戶端去寫,只要DataNode之間互相傳遞數(shù)據(jù)就好了。

分布式文件系統(tǒng)的HDFS是什么

2.2 NameNode的一些事

從上面我們可以看到,NameNode是需要處理hdfs客戶端請求的。(因?yàn)樗谴鎯?chǔ)元數(shù)據(jù)的地方,無論讀寫都需要經(jīng)過它)。

現(xiàn)在問題就來了,NameNode是怎么存放元數(shù)據(jù)的呢?

如果NameNode只是把元數(shù)據(jù)放到內(nèi)存中,那如果NameNode這臺(tái)機(jī)器重啟了,那元數(shù)據(jù)就沒了。

如果NameNode將每次寫入的數(shù)據(jù)都存儲(chǔ)到硬盤中,那如果只針對磁盤查找和修改又會(huì)很慢(因?yàn)檫@個(gè)是純IO的操作)

說到這里,又想起了Kafka。Kafka也是將partition寫到磁盤里邊的,但人家是怎么寫的?順序IO

NameNode同樣也是做了這個(gè)事:修改內(nèi)存中的元數(shù)據(jù),然后把修改的信息append(追加)到一個(gè)名為editlog的文件上。

由于append是順序IO,所以效率也不會(huì)低。現(xiàn)在我們增刪改查都是走內(nèi)存,只不過增刪改的時(shí)候往磁盤文件editlog里邊追加一條。這樣我們即便重啟了NameNode,還是可以通過editlog文件將元數(shù)據(jù)恢復(fù)。

分布式文件系統(tǒng)的HDFS是什么

現(xiàn)在也有個(gè)問題:如果NameNode一直長期運(yùn)行的話,那editlog文件應(yīng)該會(huì)越來越大(因?yàn)樗械男薷脑獢?shù)據(jù)信息都需要在這追加一條)。重啟的時(shí)候需要依賴editlog文件來恢復(fù)數(shù)據(jù),如果文件特別大,那啟動(dòng)的時(shí)候不就特別慢了嗎?

的確是如此的,那HDFS是怎么做的呢?為了防止editlog過大,導(dǎo)致在重啟的時(shí)候需要較長的時(shí)間恢復(fù)數(shù)據(jù),所以NameNode會(huì)有一個(gè)內(nèi)存快照,叫做fsimage

說到快照,有沒有想起Redis的RDB!!

這樣一來,重啟的時(shí)候只需要加載內(nèi)存快照fsimage+部分的editlog就可以了。

想法很美好,現(xiàn)實(shí)還需要解決一些事:我什么時(shí)候生成一個(gè)內(nèi)存快照fsimage?我怎么知道加載哪一部分的editlog?

問題看起來好像復(fù)雜,其實(shí)我們就只需要一個(gè)定時(shí)任務(wù)。

如果讓我自己做的話,我可能會(huì)想:我們加一份配置,設(shè)置個(gè)時(shí)間就OK了

如果editlog大到什么程度或者隔了多長時(shí)間,我們就把editlog文件的數(shù)據(jù)跟內(nèi)存快照fsiamge給合并起來。然后生成一個(gè)新的fsimage,把editlog給清空,覆蓋舊的fsimage內(nèi)存快照這樣一來,NameNode每次重啟的時(shí)候,拿到的都是最新的fsimage文件,editlog里邊的都是沒合并到fsimage的。根據(jù)這兩個(gè)文件就可以恢復(fù)最新的元數(shù)據(jù)信息了。

HDFS也是類似上面這樣干的,只不過它不是在NameNode起個(gè)定時(shí)的任務(wù)跑,而是用了一個(gè)新的角色:SecondNameNode。至于為什么?可能HDFS覺得合并所耗費(fèi)的資源太大了,不同的工作交由不同的服務(wù)器來完成,也符合分布式的理念。

分布式文件系統(tǒng)的HDFS是什么

現(xiàn)在問題還是來了,此時(shí)的架構(gòu)NameNode是單機(jī)的。SecondNameNode的作用只是給NameNode合并editlog和fsimage文件,如果NameNode掛了,那client就請求不到了,而所有的請求都需要走NameNode,這導(dǎo)致整個(gè)HDFS集群都不可用了。

于是我們需要保證NameNode是高可用的。一般現(xiàn)在我們會(huì)通過Zookeeper來實(shí)現(xiàn)。架構(gòu)圖如下:

分布式文件系統(tǒng)的HDFS是什么

主NameNode和從NameNode需要保持元數(shù)據(jù)的信息一致(因?yàn)槿绻鱊ameNode掛了,那從NameNode需要頂上,這時(shí)從NameNode需要有主NameNode的信息)。

所以,引入了Shared Edits來實(shí)現(xiàn)主從NameNode之間的同步,Shared Edits也叫做JournalNode。實(shí)際上就是主NameNode如果有更新元數(shù)據(jù)的信息,它的editlog會(huì)寫到JournalNode,然后從NameNode會(huì)在JournalNode讀取到變化信息,然后同步。從NameNode也實(shí)現(xiàn)了上面所說的SecondNameNode功能(合并editlog和fsimage)

分布式文件系統(tǒng)的HDFS是什么

稍微總結(jié)一下:

NameNode需要處理client請求,它是存儲(chǔ)元數(shù)據(jù)的地方

NameNode的元數(shù)據(jù)操作都在內(nèi)存中,會(huì)把增刪改以editlog持續(xù)化到硬盤中(因?yàn)槭琼樞騣o,所以不會(huì)太慢)

由于editlog可能存在過大的問題,導(dǎo)致重新啟動(dòng)NameNode過慢(因?yàn)橐蕾噀ditlog來恢復(fù)數(shù)據(jù)),引出了fsimage內(nèi)存快照。需要跑一個(gè)定時(shí)任務(wù)來合并fsimage和editlog,引出了SecondNameNode

又因?yàn)镹ameNode是單機(jī)的,可能存在單機(jī)故障的問題。所以我們可以通過Zookeeper來維護(hù)主從NameNode,通過JournalNode(Share Edits)來實(shí)現(xiàn)主從NameNode元數(shù)據(jù)的一致性。最終實(shí)現(xiàn)NameNode的高可用。

2.3 學(xué)點(diǎn)DataNode

從上面我們就知道,我們的數(shù)據(jù)是存放在DataNode上的(還會(huì)備份)。

如果某個(gè)DataNode掉線了,那HDFS是怎么知道的呢?

DataNode啟動(dòng)的時(shí)候會(huì)去NameNode上注冊,他倆會(huì)維持心跳,如果超過時(shí)間閾值沒有收到DataNode的心跳,那HDFS就認(rèn)為這個(gè)DataNode掛了。

還有一個(gè)問題就是:我們將Block存到DataNode上,那還是有可能這個(gè)DataNode的磁盤損壞了部分,而我們DataNode沒有下線,但我們也不知道損壞了。

一個(gè)Block除了存放數(shù)據(jù)的本身,還會(huì)存放一份元數(shù)據(jù)(包括數(shù)據(jù)塊的長度,塊數(shù)據(jù)的校驗(yàn)和,以及時(shí)間戳)。DataNode還是會(huì)定期向NameNode上報(bào)所有當(dāng)前所有Block的信息,通過元數(shù)據(jù)就可校驗(yàn)當(dāng)前的Block是不是正常狀態(tài)。

最后

其實(shí)在學(xué)習(xí)HDFS的時(shí)候,你會(huì)發(fā)現(xiàn)很多的思想跟之前學(xué)過的都類似。就比如提到的Kafka、Elasticsearch這些常用的分布式組件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8582

    瀏覽量

    151071
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9138

    瀏覽量

    85369
  • HDFS
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    9590
收藏 人收藏

    評論

    相關(guān)推薦

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)文件資產(chǎn)遷移

    使用分布式數(shù)據(jù)對象遷移數(shù)據(jù),當(dāng)需要遷移的數(shù)據(jù)較大(100KB以上)或需要遷移文件時(shí),可以使用分布式數(shù)據(jù)對象。原理與接口說明詳見分布式數(shù)據(jù)對象跨設(shè)備數(shù)據(jù)同步。 說明:自API 12起,由
    發(fā)表于 12-24 10:11

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    使用分布式數(shù)據(jù)對象遷移數(shù)據(jù),當(dāng)需要遷移的數(shù)據(jù)較大(100KB以上)或需要遷移文件時(shí),可以使用分布式數(shù)據(jù)對象。原理與接口說明詳見分布式數(shù)據(jù)對象跨設(shè)備數(shù)據(jù)同步。 說明:自API 12起,由
    發(fā)表于 12-24 09:40

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)
    的頭像 發(fā)表于 10-05 16:50 ?411次閱讀

    如何修改buildroot和debian文件系統(tǒng)

    本文檔主要介紹在沒有編譯環(huán)境的情況下,如何修改buildroot和debian文件系統(tǒng)方法,如在buildroot文件系統(tǒng)中添加文件、修改目錄等文件操作,在debian
    的頭像 發(fā)表于 07-22 17:46 ?461次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統(tǒng)</b>

    分布式SCADA系統(tǒng)的特點(diǎn)的組成

    在工業(yè)自動(dòng)化和能源管理領(lǐng)域,SCADA(Supervisory Control And Data Acquisition)系統(tǒng)扮演著至關(guān)重要的角色。其中,分布式SCADA系統(tǒng)憑借其獨(dú)特的結(jié)構(gòu)和功能
    的頭像 發(fā)表于 06-07 14:43 ?540次閱讀

    華為分布式存儲(chǔ)連續(xù)三年榮膺2024年Gartner“客戶之選”

    近日,全球權(quán)威咨詢與分析機(jī)構(gòu)Gartner發(fā)布《2024年Gartner Peer InsightsTM 分布式文件系統(tǒng)與對象存儲(chǔ)“客戶之聲”》報(bào)告,華為憑借其OceanStor分布式存儲(chǔ)解決方案再次榮獲“客戶之選”殊榮,這已是
    的頭像 發(fā)表于 05-24 10:12 ?714次閱讀

    浪潮信息發(fā)布AS13000G7-N系列分布式全閃存儲(chǔ)

    浪潮信息近日推出了專為大型AI模型優(yōu)化的AS13000G7-N系列分布式全閃存儲(chǔ)。該系列基于浪潮信息自研的分布式文件系統(tǒng),結(jié)合新一代數(shù)據(jù)加速引擎DataTurbo,為用戶提供卓越的存儲(chǔ)解決方案。
    的頭像 發(fā)表于 05-14 10:03 ?563次閱讀

    浪潮信息發(fā)布為大模型專門優(yōu)化的分布式全閃存儲(chǔ)AS13000G7-N系列

    近日,浪潮信息發(fā)布為大模型專門優(yōu)化的分布式全閃存儲(chǔ)AS13000G7-N系列。該系列依托浪潮信息自研分布式文件系統(tǒng),搭載新一代數(shù)據(jù)加速引擎DataTurbo,
    的頭像 發(fā)表于 05-08 09:38 ?560次閱讀
    浪潮信息發(fā)布為大模型專門優(yōu)化的<b class='flag-5'>分布式</b>全閃存儲(chǔ)AS13000G7-N系列

    分布式能源是什么意思?分布式能源有什么優(yōu)勢?

    分布式能源指的是在用戶端或靠近用戶端的小型能源供應(yīng)系統(tǒng),它能夠直接滿足用戶的多種能源需求,如電力、熱能和冷能。
    的頭像 發(fā)表于 04-29 17:26 ?2256次閱讀

    分布式光伏監(jiān)控系統(tǒng)解決方案

    分布式光伏發(fā)電系統(tǒng)的發(fā)電量,提高分布式光伏發(fā)電系統(tǒng)的利用率。發(fā)展分布式光伏發(fā)電對優(yōu)化能源結(jié)構(gòu)、實(shí)現(xiàn)“雙碳目標(biāo)”、推動(dòng)節(jié)能減排、實(shí)現(xiàn)經(jīng)濟(jì)可持續(xù)
    的頭像 發(fā)表于 04-22 15:56 ?975次閱讀
    <b class='flag-5'>分布式</b>光伏監(jiān)控<b class='flag-5'>系統(tǒng)</b>解決方案

    HarmonyOS實(shí)戰(zhàn)案例:【分布式賬本】

    Demo基于Open Harmony系統(tǒng)使用ETS語言進(jìn)行編寫,本Demo主要通過設(shè)備認(rèn)證、分布式拉起、分布式數(shù)據(jù)管理等功能來實(shí)現(xiàn)。
    的頭像 發(fā)表于 04-12 16:40 ?1326次閱讀
    HarmonyOS實(shí)戰(zhàn)案例:【<b class='flag-5'>分布式</b>賬本】

    分布式大屏控制系統(tǒng)對網(wǎng)絡(luò)環(huán)境的要求

    分布式大屏控制系統(tǒng)對網(wǎng)絡(luò)環(huán)境的要求較高,主要是因?yàn)樵?b class='flag-5'>系統(tǒng)需要實(shí)時(shí)傳輸大量的視頻信號(hào)數(shù)據(jù),以保證多個(gè)顯示屏幕的同步顯示。以下是幾個(gè)關(guān)鍵的網(wǎng)絡(luò)環(huán)境要求: 高帶寬:分布式大屏控制
    的頭像 發(fā)表于 01-29 14:52 ?575次閱讀

    分布式大屏控制系統(tǒng)的工作原理

    分布式大屏控制系統(tǒng)是一種基于分布式計(jì)算、云計(jì)算和大數(shù)據(jù)技術(shù)的控制系統(tǒng),具有高效、穩(wěn)定、靈活的特點(diǎn)。該系統(tǒng)通過將各個(gè)子
    的頭像 發(fā)表于 01-29 14:24 ?750次閱讀

    什么是分布式架構(gòu)?

    分布式架構(gòu)是指將一個(gè)系統(tǒng)或應(yīng)用拆分成多個(gè)獨(dú)立的節(jié)點(diǎn),這些節(jié)點(diǎn)通過網(wǎng)絡(luò)連接進(jìn)行通信和協(xié)作,以實(shí)現(xiàn)共同完成任務(wù)的一種架構(gòu)模式。這種架構(gòu)模式旨在提高系統(tǒng)的可擴(kuò)展性、可靠性和性能表現(xiàn)。 一、分布式
    的頭像 發(fā)表于 01-12 15:04 ?1234次閱讀
    什么是<b class='flag-5'>分布式</b>架構(gòu)?

    【Vsan數(shù)據(jù)恢復(fù)】Vsan分布式存儲(chǔ)虛擬磁盤文件丟失的數(shù)據(jù)恢復(fù)案例

    一套vsan分布式存儲(chǔ)架構(gòu)有數(shù)臺(tái)服務(wù)器節(jié)點(diǎn),該vsan分布式存儲(chǔ)架構(gòu)配置了固態(tài)硬盤和機(jī)械硬盤,固態(tài)硬盤作為緩存盤使用,機(jī)械硬盤作為容量盤使用。 機(jī)房供電異常導(dǎo)致服務(wù)器異常關(guān)機(jī),工作人員重啟服務(wù)器后發(fā)現(xiàn)vsan分布式存儲(chǔ)邏輯架構(gòu)
    的頭像 發(fā)表于 01-03 16:39 ?619次閱讀
    主站蜘蛛池模板: 99视频精品全部免费观看| 扒开美女的内衣亲吻漫画| 99pao成人国产永久免费视频| 被黑人群jian又粗又大H| 国产精品人妻无码久久久2022| 久久久大香菇| 国产精品人妻99一区二| 久久精品综合电影| 欧美另类jizzhd| 亚洲精品国产SUV| 99久久精品6在线播放| 国产精品日本不卡一区二区| 久久综合久久鬼| 跳蛋按摩棒玉势PLAY高H| 正在播放国产精品| 国产AV精品白浆一区二| 国产黄大片在线视频| 国产亚洲精品久久久久小| 蜜芽资源高清在线观看| 无码中文字幕av免费放| 97久久精品人人槡人妻人| 国产午夜电影院| 奇米色偷偷| 在线观看99| 国产精品一区二区在线播放| 韩国hd高清xxx| 青草久久影院| 在线观看免费视频播放视频| 国产精品人妻一区免费看8C0M| 男人扒开添女人下部口述| 亚洲精品久久99蜜芽尤物TV| 成年人视频在线观看免费| 久久久久伊人| 香港论理午夜电影网| FREE另类老女人| 久久久久亚洲| 亚洲国产在线综合018| 高清欧美性猛交xxxx黑人猛交| 免费人妻AV无码专区五月| 夜夜女人国产香蕉久久精品| 国产精品久久久久精品A片软件 |