精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

什么是HDFS?算了,告訴你也不懂

存儲 存儲軟件
隨著數據量越來越大,在一臺機器上已經無法存儲所有的數據了,那我們會將這些數據分配到不同的機器來進行存儲,但是這就帶來一個問題:不方便管理和維護

 [[317197]]

一、HDFS介紹

上篇文章已經講到了,隨著數據量越來越大,在一臺機器上已經無法存儲所有的數據了,那我們會將這些數據分配到不同的機器來進行存儲,但是這就帶來一個問題:不方便管理和維護。

所以,我們就希望有一個系統可以將這些分布在不同操作服務器上的數據進行統一管理,這就有了分布式文件系統。

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

在使用HDFS的時候是非常簡單的:雖然HDFS是將文件存儲到不同的機器上,但是我去使用的時候是把這些文件當做是存儲在一臺機器的方式去使用(背后卻是多臺機器在執行):

  • 好比:我調用了一個RPC接口,我給他參數,他返回一個response給我。RPC接口做了什么事其實我都不知道的(可能這個RPC接口又調了其他的RPC接口)-----屏蔽掉實現細節,對用戶友好。

HDFS使用

明確一下:HDFS就是一個分布式文件系統,一個文件系統,我們用它來做什么?存數據呀。

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

二、HDFS學習

從上面我們已經提到了,HDFS作為一個分布式文件系統,那么它的數據是保存在多個系統上的。例如,下面的圖:一個1GB的文件,會被切分成幾個小的文件,每個服務器都會存放一部分。

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

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

PS:老版本默認是64MB

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

這些存放真實數據的服務器,在HDFS領域叫做DataNode。

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

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

所以,無論是讀還是寫,HDFS客戶端都會先去找NameNode,通過NameNode得知相應的信息,再去找DataNode。

  • 如果是寫操作,HDFS切分完文件以后,會詢問NameNode應該將這些切分好的block往哪幾臺DataNode上寫。
  • 如果是讀操作,HDFS拿到文件名,也會去詢問NameNode應該往哪幾臺DataNode上讀數據。

2.1 HDFS備份

作為一個分布式系統(把大文件切分為多個小文件,存儲到不同的機器上),如果沒有備份的話,只要有其中的一臺機器掛了,那就會導致「數據」是不可用狀態的。

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

Kafka對partition備份,ElasticSearch對分片進行備份,而到HDFS就是對Block進行備份。

盡可能將數據備份到不同的機器上,即便某臺機器掛了,那就可以將備份數據拉出來用。

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

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

2.2 NameNode的一些事

從上面我們可以看到,NameNode是需要處理hdfs客戶端請求的。(因為它是存儲元數據的地方,無論讀寫都需要經過它)。

現在問題就來了,NameNode是怎么存放元數據的呢?

  • 如果NameNode只是把元數據放到內存中,那如果NameNode這臺機器重啟了,那元數據就沒了。
  • 如果NameNode將每次寫入的數據都存儲到硬盤中,那如果只針對磁盤查找和修改又會很慢(因為這個是純IO的操作)

說到這里,又想起了Kafka。Kafka也是將partition寫到磁盤里邊的,但人家是怎么寫的?順序IO NameNode同樣也是做了這個事:修改內存中的元數據,然后把修改的信息append(追加)到一個名為editlog的文件上。

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

現在也有個問題:如果NameNode一直長期運行的話,那editlog文件應該會越來越大(因為所有的修改元數據信息都需要在這追加一條)。重啟的時候需要依賴editlog文件來恢復數據,如果文件特別大,那啟動的時候不就特別慢了嗎?

的確是如此的,那HDFS是怎么做的呢?為了防止editlog過大,導致在重啟的時候需要較長的時間恢復數據,所以NameNode會有一個內存快照,叫做fsimage

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

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

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

問題看起來好像復雜,其實我們就只需要一個定時任務。

如果讓我自己做的話,我可能會想:我們加一份配置,設置個時間就OK了。

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

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

現在問題還是來了,此時的架構NameNode是單機的。SecondNameNode的作用只是給NameNode合并editlog和fsimage文件,如果NameNode掛了,那client就請求不到了,而所有的請求都需要走NameNode,這導致整個HDFS集群都不可用了。

于是我們需要保證NameNode是高可用的。一般現在我們會通過Zookeeper來實現。架構圖如下:

主NameNode和從NameNode需要保持元數據的信息一致(因為如果主NameNode掛了,那從NameNode需要頂上,這時從NameNode需要有主NameNode的信息)。

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

 

稍微總結一下:

  • NameNode需要處理client請求,它是存儲元數據的地方。
  • NameNode的元數據操作都在內存中,會把增刪改以editlog持續化到硬盤中(因為是順序io,所以不會太慢)。
  • 由于editlog可能存在過大的問題,導致重新啟動NameNode過慢(因為要依賴editlog來恢復數據),引出了fsimage內存快照。需要跑一個定時任務來合并fsimage和editlog,引出了SecondNameNode。
  • 又因為NameNode是單機的,可能存在單機故障的問題。所以我們可以通過Zookeeper來維護主從NameNode,通過JournalNode(Share Edits)來實現主從NameNode元數據的一致性。最終實現NameNode的高可用。

2.3 學點DataNode

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

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

DataNode啟動的時候會去NameNode上注冊,他倆會維持心跳,如果超過時間閾值沒有收到DataNode的心跳,那HDFS就認為這個DataNode掛了。

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

一個Block除了存放數據的本身,還會存放一份元數據(包括數據塊的長度,塊數據的校驗和,以及時間戳)。DataNode還是會定期向NameNode上報所有當前所有Block的信息,通過元數據就可校驗當前的Block是不是正常狀態。

最后

其實在學習HDFS的時候,你會發現很多的思想跟之前學過的都類似。就比如提到的Kafka、Elasticsearch這些常用的分布式組件。

如果對Kafka、Elasticsearch、Zookeeper、Redis等不了解的同學,可以在我的GitHub或公眾號里邊找對應的文章哦~我覺得還算寫得通俗易懂的。

改天整合一下這些框架的持久化特點,再寫一篇。(因為可以發現,他們的持久化機制都十分類似)

 

責任編輯:武曉燕 來源: Java3y
相關推薦

2021-02-27 10:38:56

Python結構數據

2014-10-16 09:30:31

RFID

2021-04-15 09:37:05

大數據Maven

2015-03-02 10:08:09

Apple Watch

2012-07-03 16:56:12

Hadoop

2011-03-07 09:44:09

赤裸的密碼密碼

2012-08-30 10:51:42

云計算Citrix

2019-12-19 17:00:01

Java線程

2019-12-25 10:45:30

Java悲觀鎖

2019-08-08 18:14:43

戴爾

2021-03-01 18:38:32

Mock測試軟件

2017-10-19 21:56:55

數據可視化大數據數據

2010-01-14 14:54:31

什么是三層交換機

2012-05-17 15:28:54

云計算

2023-10-26 21:41:45

云計算企業云基礎

2018-03-28 21:40:03

2016-06-02 11:02:02

機器學習

2018-02-25 11:00:05

2010-08-19 21:29:13

存儲虛擬化

2013-03-04 10:38:26

數字大數據故事
點贊
收藏

51CTO技術棧公眾號

国内性生活视频| 国产精品va在线播放我和闺蜜| 色呦色呦色精品| 青草在线视频| 国产亚洲女人久久久久毛片| 成人免费网站在线观看| 久久精品亚洲无码| 欧美日韩国产传媒| 欧美精品一区二区三区在线播放 | 久久久久久久久久久9不雅视频| 日韩情涩欧美日韩视频| 欧美污视频网站| a级影片在线| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲激情一区二区| 丁香六月色婷婷| 久久精品99国产精品| 91av在线免费观看| 欧美在线视频第一页| 国产一区二区三区四区五区 | 精品美女视频在线观看免费软件| 国产九色精品成人porny| 欧美综合一区第一页| 一区二区视频免费看| 精品久久美女| 亚洲加勒比久久88色综合| 超碰人人草人人| 91综合国产| 欧美色xxxx| 久久久久久www| sm国产在线调教视频| 国产精品婷婷午夜在线观看| 久久99精品久久久久久久青青日本| 国产精品系列视频| 青青草视频一区| 日韩免费视频在线观看| 久久艹免费视频| 国产主播精品| 欧美成人免费一级人片100| 日本精品久久久久中文| 久久av影视| 亚洲久久久久久久久久| www.88av| 久久影院资源站| 亚洲国产精品久久精品怡红院| 欧美日韩一区二区区| 成人乱码手机视频| 欧美电影一区二区| 91aaa精品| 精品一区视频| 欧美一级艳片视频免费观看| www.国产福利| 色悠久久久久综合先锋影音下载| 91精品麻豆日日躁夜夜躁| 视频在线观看免费高清| 91国内外精品自在线播放| 欧美综合天天夜夜久久| 亚洲高清在线免费观看| 涩涩视频网站在线观看| 欧美日韩亚洲天堂| 激情综合网婷婷| 韩日精品一区| 欧美喷潮久久久xxxxx| 992kp免费看片| 亚洲日本视频在线| 亚洲国产精品网站| 干b视频在线观看| 日韩一区自拍| 欧美日韩高清在线观看| 日本免费一二三区| 久久激情视频| 国产日韩精品在线| 国产aⅴ爽av久久久久成人| 国产精品一区二区久激情瑜伽| dy888夜精品国产专区| 日本高清视频免费看| 91麻豆国产精品久久| 日韩电影免费观看高清完整| 免费网站看v片在线a| 亚洲精品老司机| 国产三区在线视频| 24小时成人在线视频| 亚洲精品一区二区三区99| 六月婷婷七月丁香| 91精品国产福利在线观看麻豆| 欧美激情网友自拍| av一级在线观看| 国内精品在线播放| 精品毛片久久久久久| 成人高清网站| 亚洲一本大道在线| 亚洲成人福利在线观看| 99re91这里只有精品| 亚洲欧美日韩区| 男女羞羞免费视频| 日韩国产精品久久| 国产高清在线一区二区| 国产精品ⅴa有声小说| 亚洲精品国产品国语在线app| 国产黄视频在线| 国产精品久久久久久av公交车| 日韩高清人体午夜| 成人在线观看小视频| 美女精品在线观看| 不卡的av一区| 午夜视频在线观看网站| 精品美女国产在线| wwwxxx色| 99久久久久久中文字幕一区| 欧美在线激情网| 精品人妻一区二区三区含羞草| 久久美女艺术照精彩视频福利播放 | 热99精品只有里视频精品| 国产免费久久久| 国产亚洲一二三区| 成年人看的毛片| 成人污版视频| 中文字幕亚洲情99在线| 国产精品视频免费播放| 成人性色生活片免费看爆迷你毛片| 亚洲欧美日韩精品在线| 都市激情综合| 亚洲国产第一页| 欧美日韩中文字幕在线观看 | 国产精品19p| 青青草综合网| 国产精品av在线播放| 五月婷婷六月丁香综合| 一区二区免费在线播放| 992kp免费看片| 91久久国产| 国产欧美一区二区白浆黑人| 国产在线电影| 色综合久久久久久久久久久| 欧类av怡春院| 中文久久精品| 精品一区久久久久久| 国内老司机av在线| 日韩免费看网站| 四虎免费在线视频| 国产精品一区二区在线观看网站| 一区精品视频| 成人综合日日夜夜| 久久久国产成人精品| 97人人爽人人爽人人爽| 国产精品家庭影院| 日本高清一区| 97超级碰在线看视频免费在线看| 欧美日韩一级黄色片| 97se狠狠狠综合亚洲狠狠| 黄色一级片在线看| av日韩在线播放| 久久久在线观看| 日本成人动漫在线观看| 午夜av一区二区| 中出视频在线观看| 亚洲专区欧美专区| 欧美久久电影| 78精品国产综合久久香蕉| 在线观看不卡av| 91九色蝌蚪91por成人| 亚洲日本青草视频在线怡红院| 91热视频在线观看| 欧美日本一区二区视频在线观看 | 国产又黄又爽又色| 91丝袜美腿高跟国产极品老师| 欧美一级片中文字幕| 精品日韩一区| 92福利视频午夜1000合集在线观看| 影音先锋在线播放| 精品国产一区二区三区四区四 | 免费超碰在线| 日韩精品中文字幕在线一区| 日韩污视频在线观看| 91亚洲精华国产精华| 国产精品久久久久久久成人午夜| 国产精品护士白丝一区av| 色播五月激情五月| 国内自拍一区| 欧美连裤袜在线视频| 久久精品国产精品亚洲毛片| 久久夜精品香蕉| 你懂的网站在线| 色国产综合视频| 免费三级在线观看| 99精品偷自拍| 日本一二区免费| 亚洲人妖在线| 亚洲高清精品中出| 成人爽a毛片免费啪啪红桃视频| 日本在线精品视频| 4438x成人网全国最大| 亚洲精品自拍偷拍| 91亚洲国产成人久久精品麻豆| 亚洲成av人片| 国产又色又爽又高潮免费| 成人午夜视频免费看| 国产成人黄色网址| 亚洲激情社区| 国产精品99久久久久久大便| 日韩理论电影中文字幕| 成人国产亚洲精品a区天堂华泰| 麻豆免费在线| 久久91亚洲精品中文字幕| 国产高清视频免费最新在线| 精品国产乱码久久久久久牛牛 | 免费网站成人| 亚洲色无码播放| 欧美特级特黄aaaaaa在线看| 7777精品伊人久久久大香线蕉超级流畅 | av不卡在线免费观看| 天堂网av成人| 999国内精品视频在线| 日韩一区精品| 欧美伊久线香蕉线新在线| 羞羞的视频在线观看| 中文字幕九色91在线| 午夜影院免费体验区| 欧美一级午夜免费电影| 真实的国产乱xxxx在线91| 亚洲va欧美va国产va天堂影院| 亚洲国产123| 国产精品伦一区二区三级视频| 男人天堂av电影| jiyouzz国产精品久久| 蜜桃视频无码区在线观看| 韩国成人精品a∨在线观看| 国产一二三四在线视频| 久久99伊人| 日本不卡在线观看视频| 一本久道久久综合狠狠爱| 被灌满精子的波多野结衣| 欧美一区激情| 91视频成人免费| 中文精品久久| 成人国产在线看| 中文字幕免费一区二区| 中文网丁香综合网| 希岛爱理av一区二区三区| 亚洲日本精品| 欧美freesextv| 一区二区三区视频| 欧美第一精品| 国产91av视频在线观看| 久久高清免费| 一区二区免费在线观看| 四虎8848精品成人免费网站| 9999在线观看| 欧美激情日韩| 欧美中文字幕在线观看视频| 午夜国产精品视频| 欧美黄色免费网址| 亚洲欧洲一区二区天堂久久| 国产综合中文字幕| 亚洲制服av| 国产视频一区二区三区在线播放| 日韩av一级电影| 一级做a免费视频| 国产综合久久久久影院| 师生出轨h灌满了1v1| 成人aaaa免费全部观看| 粉嫩av蜜桃av蜜臀av| 国产日韩欧美麻豆| 国产黄色小视频网站| 一区二区三区在线影院| 天天爽夜夜爽夜夜爽精品| 91传媒视频在线播放| 一级片免费观看视频| 欧美一二三区在线| 亚洲三区在线播放| 尤物tv国产一区| 欧美aaaaaaa| 欧美在线免费观看| 2020国产精品小视频| 超碰97网站| 少妇精品久久久一区二区三区| 亚洲v国产v在线观看| 欧美va亚洲va日韩∨a综合色| 亚洲精品无码国产| 日精品一区二区| 日本一本在线视频| 99re66热这里只有精品3直播| 久久久久久成人网| 一区二区三区免费网站| 国产一级淫片a视频免费观看| 91麻豆精品国产91久久久使用方法 | 中文字幕在线2018| 日韩精品一区二区三区在线| 黄色毛片在线观看| 另类专区欧美制服同性| 九九色在线视频| 国产精品综合网站| 加勒比久久高清| 伊人久久99| 亚洲在线网站| 佐佐木明希电影| 欧美经典一区二区| av大片免费在线观看| 欧美酷刑日本凌虐凌虐| 天堂91在线| 欧美大尺度在线观看| 蜜桃成人精品| 国产亚洲欧美一区二区| 91成人免费| youjizzxxxx18| av爱爱亚洲一区| 久久国产精品二区| 欧美日韩成人一区| 国产区视频在线播放| 国内精品久久久久久影视8| 日韩成人在线一区| 欧美激情第一页在线观看| 欧美天天视频| 亚洲天堂av一区二区三区| 日本一区二区免费在线观看视频 | 黄大色黄女片18免费| 欧美日韩亚洲精品内裤| 欧美一级特黄aaaaaa大片在线观看| 日韩视频中文字幕| 国产精品字幕| 欧美国产综合视频| 夜夜夜久久久| 人妖粗暴刺激videos呻吟| 亚洲精品综合在线| 国产精品一级视频| www.亚洲免费视频| 91另类视频| 亚洲高清资源综合久久精品| 日韩精品五月天| 91成人破解版| 色婷婷精品久久二区二区蜜臀av| 乱精品一区字幕二区| 欧美激情在线狂野欧美精品| 国产精品国产三级在线观看| 亚洲最大免费| 精品在线你懂的| 激情高潮到大叫狂喷水| 欧美日韩中文字幕一区| 高清福利在线观看| 国产精品电影在线观看| 国产亚洲一卡2卡3卡4卡新区| 国产福利一区视频| 欧美韩日一区二区三区| 中文字幕一区二区三区四区免费看| 亚洲最大中文字幕| 精品福利在线| 人人妻人人澡人人爽精品欧美一区| 蜜桃av一区二区三区电影| 天堂资源在线视频| 欧美日韩免费在线视频| 精品176二区| 91九色蝌蚪成人| 影音先锋日韩资源| 国产三级视频网站| 91福利国产精品| 黄色网在线免费观看| 91丝袜脚交足在线播放| 亚洲国产网站| 午夜在线观看一区| 精品污污网站免费看| 国产成人无吗| 国产 高清 精品 在线 a| 99在线精品免费视频九九视| 在哪里可以看毛片| 欧美日韩三级视频| 日韩经典av| 欧美一级爱爱| 精品影院一区二区久久久| 欧美黄色免费观看| 精品视频偷偷看在线观看| 国产成人精品一区二三区在线观看 | 国产成人av免费观看| 欧美日韩免费在线观看| 福利在线播放| www.av一区视频| 久久久久久自在自线| 成人欧美一区二区三区黑人一| 日韩视频一区二区三区| 美女高潮视频在线看| 亚洲欧洲免费无码| 国产激情视频一区二区在线观看 | 亚洲女成人图区| 日韩久久99| 久在线观看视频| 中文字幕一区二区日韩精品绯色| 亚洲av综合色区无码一区爱av| 欧美在线视频免费观看| 亚洲精品成人影院| 成人h动漫精品一区| 91精品国产美女浴室洗澡无遮挡| 超级白嫩亚洲国产第一| 一区二区在线观看网站| av电影在线观看一区| 国产精品一区二区三区在线免费观看| 97福利一区二区| 婷婷伊人综合| 精品欧美一区二区久久久| 亚洲成人激情在线观看| 日韩美女在线| 日本一极黄色片|