精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久亚洲风情| 欧美日韩一区二区三区视频播放| 精品美女久久久久久免费| 九九九久久久| 中文字幕永久在线观看| 欧美精品激情| 国产视频欧美视频| 搡的我好爽在线观看免费视频| 黑人另类精品××××性爽| 久久久久国产精品麻豆ai换脸| 91精品中国老女人| 在线观看免费av片| 欧美喷水视频| 色小说视频一区| 中文字幕a在线观看| 成人在线中文| 欧美性xxxx18| 国产91在线亚洲| 岛国在线视频免费看| 成人精品在线视频观看| 91久久国产婷婷一区二区| 成人午夜淫片100集| 欧美国产日本| 中文综合在线观看| 中文字幕高清视频| 国产精品sss在线观看av| 欧美日韩一二三| 国产成人久久婷婷精品流白浆| 性欧美videoshd高清| 国产精品女同一区二区三区| 狠狠色综合色区| av免费观看在线| 久久精品国产99| 青青久久aⅴ北条麻妃| 久久久www成人免费毛片| 日韩www.| 在线精品高清中文字幕| 一卡二卡三卡四卡| 日韩影视高清在线观看| 精品免费日韩av| 奇米777在线| 亚洲二区av| 日本韩国一区二区三区| 青青草原成人网| 国产高清自产拍av在线| 亚洲福利一区二区三区| www.激情网| 麻豆av在线免费观看| 亚洲精品日韩综合观看成人91| 在线天堂一区av电影| av资源种子在线观看| 欧美经典一区二区| 亚洲高清123| 亚洲成a人v欧美综合天堂麻豆| 国产亚洲综合性久久久影院| 日本一区网站| av网站在线免费观看| 国产欧美日韩不卡| 亚洲国产一区二区精品视频 | 在线看片福利| 欧美日韩亚洲一区二区| av免费在线播放网站| 欧美性xxx| 欧美亚洲综合在线| 视频在线观看免费高清| 欧美黄色a视频| 91精品国产欧美一区二区18| 一级日本黄色片| 大香伊人久久精品一区二区| 亚洲第一页中文字幕| 久久久久久久久免费看无码| 精品国产乱码久久久| 少妇av一区二区三区| 日韩欧美国产成人精品免费| 在线电影一区二区| 98精品国产高清在线xxxx天堂| 中文字幕免费在线观看视频| 奇米影视一区二区三区| 成人免费视频网| 乱精品一区字幕二区| www久久精品| 亚洲一区二区高清视频| 日本在线视频中文有码| 欧美日韩亚洲一区二区三区| 三上悠亚在线一区二区| 日韩欧美高清一区二区三区| 亚洲精品mp4| 国产黄色录像视频| 国模 一区 二区 三区| 日本成人在线视频网址| 欧美激情一区二区三区免费观看| 国产毛片精品视频| 蜜桃视频日韩| 日本在线天堂| 偷拍日韩校园综合在线| 视频在线观看免费高清| 欧美日日夜夜| xxxxx91麻豆| 日本特级黄色片| 国产一区视频在线看| 久久一区二区三区欧美亚洲| 巨大荫蒂视频欧美另类大| 亚洲国产日韩a在线播放| 福利在线一区二区三区| a级日韩大片| 色老头一区二区三区| 日干夜干天天干| 久久99蜜桃精品| 欧美下载看逼逼| 蜜臀av国内免费精品久久久夜夜| 欧美综合一区二区| 亚洲最大的黄色网| 亚洲国产不卡| 国产精品精品视频| 午夜激情小视频| 亚洲欧美日韩国产一区二区三区| 男人女人黄一级| 久久超级碰碰| 欧美夫妻性生活视频| 一级黄色免费看| 久久久精品国产免大香伊| 精品久久久久久无码中文野结衣| 男人亚洲天堂| 国产一区二区三区免费视频| 日韩特黄一级片| 国产91在线观看| 日本一区二区三区四区五区六区| 澳门av一区二区三区| 亚洲大胆美女视频| 草视频在线观看| 久久99精品一区二区三区| 日韩欧美一区二区在线观看 | 国产精品草莓在线免费观看| 人妻无码中文字幕免费视频蜜桃| 最新成人av在线| 欧美日韩一区二区三区69堂| 国产麻豆一区二区三区精品视频| 98精品国产高清在线xxxx天堂| 亚洲精品一区二区三区不卡| 亚洲免费观看高清完整版在线| 四季av一区二区| 九色成人国产蝌蚪91| 91精品国产91久久久久久| 乱色精品无码一区二区国产盗| 亚洲精品欧美二区三区中文字幕| 好男人www社区| 免费成人高清在线视频theav| 97精品视频在线| 天堂资源最新在线| 欧美日韩中文字幕在线| 人妻无码中文久久久久专区| 99视频精品| 九九热久久66| 亚洲校园激情春色| 亚洲欧美精品在线| 黄色大全在线观看| 国产精品女主播av| 亚洲第一色av| 欧美日韩亚洲三区| 国产精品久久久久久久久婷婷| 国内高清免费在线视频| 亚洲精品一区二区三区99| 国产亚洲第一页| 99精品久久只有精品| 黄色动漫在线免费看| 国产精品一区二区av日韩在线| 国产精品成人一区二区| 日韩精品黄色| 精品三级在线看| 丁香六月婷婷综合| 国产精品女主播在线观看| 久久综合在线观看| 亚洲毛片一区| 日韩av电影免费在线| 自拍偷拍亚洲| 国内久久久精品| 毛片在线播放网址| 91麻豆精品国产综合久久久久久| 久久亚洲成人av| 久久先锋资源网| 亚洲免费黄色录像| 亚洲黄色三级| 日韩欧美一区二区视频在线播放| 亚洲热av色在线播放| 久久久久久久香蕉网| 蜜桃视频在线播放| 欧美一区二区三区精品| 日本午夜视频在线观看| 国产精品久久久久国产精品日日| 中文字幕无码毛片免费看| 国产精品一级| 波多野结衣三级在线| 欧美色图五月天| 国产在线精品自拍| 男人久久天堂| 久久夜精品va视频免费观看| 无码精品黑人一区二区三区| 欧美日韩免费观看一区二区三区| 国产真实乱人偷精品视频| 国产肉丝袜一区二区| 极品白嫩的小少妇| 老司机精品视频在线| 婷婷五月综合缴情在线视频| 成人在线一区| 久久亚洲免费| gogo久久日韩裸体艺术| 国产精品精品视频| 日韩伦理精品| 欧美国产日本高清在线| 午夜免费福利在线观看| 亚洲美女性视频| 亚洲福利在线观看视频| 欧美色涩在线第一页| 天天操天天爽天天干| 亚洲美女免费在线| 精品人体无码一区二区三区| 99九九99九九九视频精品| 色网站在线视频| 日本不卡一区二区| 精品99在线视频| 伊人激情综合| 免费看av软件| 欧美肥老太太性生活| 欧洲久久久久久| 秋霞影视一区二区三区| 鬼打鬼之黄金道士1992林正英| 韩国精品视频在线观看 | 成人在线中文| 国产精品成人aaaaa网站| heyzo一区| 欧美寡妇偷汉性猛交| 中文国产字幕在线观看| 久久精品国产清自在天天线 | aa视频在线免费观看| 欧美人牲a欧美精品| 日韩精选在线观看| 91国在线观看| 日韩熟女一区二区| 一本久道久久综合中文字幕| 成年人免费高清视频| 亚洲综合久久av| 欧美黄片一区二区三区| 亚洲女女做受ⅹxx高潮| 希岛爱理中文字幕| 亚洲女厕所小便bbb| 99成人在线观看| 亚洲色图在线播放| 一区二区成人免费视频| 亚洲欧美日韩久久| 18岁成人毛片| 亚洲已满18点击进入久久| 欧美精品xxxxx| 亚洲成av人片在线观看| 日本少妇久久久| 欧美日韩国产色| 九一国产在线观看| 在线观看视频一区二区欧美日韩| 亚洲婷婷久久综合| 欧美绝品在线观看成人午夜影视| 国产乱叫456在线| 欧美电影精品一区二区| 欧美自拍第一页| 日韩精品福利在线| 国产三区四区在线观看| 日韩亚洲成人av在线| 在线观看wwwxxxx| 97久久久免费福利网址| 欧美艳星kaydenkross| 国产精品美女午夜av| 亚洲国产天堂| 国产精品久久精品视| 免费看av成人| 久久久国产精华液999999| 欧美日韩福利| 精品一卡二卡三卡| 久久99日本精品| fc2成人免费视频| 久久久久久久久岛国免费| 日韩av片在线免费观看| 亚洲精品伦理在线| 神马久久久久久久| 3d动漫精品啪啪1区2区免费| 人妻偷人精品一区二区三区| 亚洲视频专区在线| 午夜影院免费在线| 国产精品福利网| 亚洲1区在线观看| 欧美日本国产精品| 亚洲激情久久| 两根大肉大捧一进一出好爽视频| 日韩电影一二三区| 深夜视频在线观看| 国产无人区一区二区三区| 日本一级二级视频| 在线视频欧美区| 亚洲AV无码一区二区三区少妇 | 51精品国产人成在线观看| 欧美日韩导航| 欧美日韩午夜爽爽| 青椒成人免费视频| 成人手机在线免费视频| 亚洲欧洲成人av每日更新| 国产一级精品视频| 欧美一卡二卡在线| www.亚洲.com| 45www国产精品网站| 国产一区二区三区| 日韩精品一区二区三区丰满| 海角社区69精品视频| 日韩大片一区二区| 久久综合精品国产一区二区三区 | 91久久国产自产拍夜夜嗨| 伊人久久大香线蕉综合网站 | www.黄色com| 疯狂欧美牲乱大交777| 精品久久在线观看| www.亚洲一区| 电影在线观看一区二区| 激情伦成人综合小说| 午夜日韩激情| 欧美激情第3页| 日本一区二区视频在线观看| 国产成人在线播放视频| 欧美α欧美αv大片| 成人午夜在线影视| 国产在线视频一区| 日韩大片在线| 国产天堂在线播放| 2021国产精品久久精品| 亚洲国产成人精品激情在线| 精品国产乱码久久久久久图片 | 性生活一级大片| 国产精品久久99| 影音先锋国产资源| 国产亚洲精品久久久优势| 在线亚洲人成| 欧美视频小说| 秋霞午夜av一区二区三区| 国产亚洲精品熟女国产成人| 欧美性猛交xxxx乱大交蜜桃 | av毛片精品| 男人天堂av片| 成人av片在线观看| 久草视频精品在线| 亚洲成色777777在线观看影院| 国产www视频在线观看| 国产精品免费视频一区二区 | 色综合久久一区二区三区| av片中文字幕| 日本一区免费视频| 在线亚洲欧美日韩| www.欧美三级电影.com| 99视频有精品高清视频| 8x8x华人在线| 东方aⅴ免费观看久久av| 黄网在线观看视频| 亚洲欧洲日本专区| 日韩经典一区| 自拍偷拍视频在线| 成人h版在线观看| 中文字幕国产在线观看| 尤物yw午夜国产精品视频明星 | 国产精品区一区二区三含羞草| 韩国av一区| 日韩一级av毛片| 在线不卡的av| 韩国日本一区| 欧美日韩一区二区视频在线观看 | 国产精品久久久久久久久久久新郎| 成人黄色小视频| 中文字幕第六页| 天天操天天综合网| 国产三区四区在线观看| 91久久久久久久| 日韩五码在线| 麻豆精品免费视频| 91麻豆精品国产91久久久久久久久 | 国产精品无遮挡| 亚洲精品成av人片天堂无码| 欧美一级大胆视频| 久久国产亚洲| 一级黄色片毛片| 欧美日韩国产三级| 51漫画成人app入口| 日韩午夜视频在线观看| 国产高清久久久久| 国产性生活视频| 色综合91久久精品中文字幕| 亚洲品质自拍| 特种兵之深入敌后| 欧洲在线/亚洲| 男女在线视频| 亚洲日本精品国产第一区| 国产成人午夜精品影院观看视频| 中文人妻av久久人妻18| 欧美激情性做爰免费视频| 成人影院天天5g天天爽无毒影院| 国产精品偷伦视频免费观看了| 欧美性videosxxxxx| www.youjizz.com在线|