成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享HDFS學(xué)習(xí)總結(jié)

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享HDFS學(xué)習(xí)總結(jié),HDFS介紹

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供曾都網(wǎng)站建設(shè)、曾都做網(wǎng)站、曾都網(wǎng)站設(shè)計(jì)、曾都網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、曾都企業(yè)網(wǎng)站模板建站服務(wù),10年曾都做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

?

HDFS(Hadoop Distributed File System)是分布式文件系統(tǒng),是Hadoop項(xiàng)目的核心子項(xiàng)目.

?

設(shè)計(jì)思想:將大文件、大批量文件,分布式存放在大量服務(wù)器上,以便于采取分而治之的方式對海量數(shù)據(jù)進(jìn)行運(yùn)算分析。

?

HDFS的重要特性

?

1. HDFS中的文件在物理上是**分塊存儲**(block),塊的大小可以通過配置參數(shù)( dfs.blocksize)來規(guī)定,默認(rèn)大小在hadoop2.x版本中是128M,老版本中是64M

2. HDFS文件系統(tǒng)會給客戶端提供一個(gè)**統(tǒng)一的抽象目錄樹**,客戶端通過路徑來訪問文件

3. **目錄結(jié)構(gòu)及文件分塊信息(元數(shù)據(jù))**的管理由namenode節(jié)點(diǎn)承擔(dān)

4. 文件的各個(gè)block的存儲管理由datanode節(jié)點(diǎn)承擔(dān)

5. HDFS是設(shè)計(jì)成適應(yīng)一次寫入,多次讀出的場景,且不支持文件的修改

?

HDFS的優(yōu)點(diǎn)

?

1. 高可靠性

?

???Hadoop按位存儲和處理數(shù)據(jù)的能力強(qiáng)

?

2. 高擴(kuò)展性

?

???Hadoop是在可用的計(jì)算機(jī)集群中分配數(shù)據(jù)完成計(jì)算計(jì)算任務(wù) ?

?

3. 高效性

?

???Hadoop能夠在節(jié)點(diǎn)之間動態(tài)的移動數(shù)據(jù),并保證每個(gè)節(jié)點(diǎn)的動態(tài)平衡

?

4. 高容錯(cuò)性

?

???Hadoop能夠自動保存的多個(gè)副本,并且能夠自動將失敗的任務(wù)重新分配

?

???

?

HDFS的缺點(diǎn)

?

1. 不適合低延遲訪問,不能快速訪問

?

???HDFS是單Master的,所有的對文件的請求都要經(jīng)過它,當(dāng)請求多時(shí),肯定會有延時(shí)。它適合高吞吐率的場景,就是在某一時(shí)間內(nèi)寫入大量的數(shù)據(jù)

?

2. 無法高效存儲大量小文件

?

???存儲大量小文件的話,它會占用 NameNode大量的內(nèi)存來存儲文件、目錄和塊信息(元數(shù)據(jù))

?

3. 不支持多用戶寫入即任意修改文件

?

???僅支持?jǐn)?shù)據(jù)append(追加),不支持文件隨意修改

?

針對HDFS缺點(diǎn)可能的改進(jìn)措施

?

1. 多Master設(shè)計(jì),正在研發(fā)中的GFS II也要改為分布式多Master設(shè)計(jì),還支持Master的Failover,而且Block大小改為1M,有意要調(diào)優(yōu)處理小文件。(Alibaba DFS的設(shè)計(jì),也是多Master設(shè)計(jì),它把Metadata的映射存儲和管理分開了,由多個(gè)Metadata存儲節(jié)點(diǎn)和一個(gè)查詢Master節(jié)點(diǎn)組成。)

2. ?使用緩存或多master設(shè)計(jì)可以降低client的數(shù)據(jù)請求壓力,以減少延時(shí)。

3. 橫向擴(kuò)展,一個(gè)Hadoop集群能管理的小文件有限,那就把幾個(gè)Hadoop集群拖在一個(gè)虛擬服務(wù)器后面,形成一個(gè)大的Hadoop集群。google也是這么干過的。

?

HDFS的Shell命令

?

| **-help** 輸出命令的手冊 ????????????????????????????????????|

| :----------------------------------------------------------- |

| **-ls** 顯示目錄信息 ??`hadoop fs -ls ??hdfs://hadoop-server01:9000/` ??ps:這些參數(shù)中,所有的hdfs**路徑都可以簡寫 ??-->`hadoop fs -ls /` ??等同于上一條命令的效果|

| **-put** ?向HDSF上傳文件`hdfs dfs -put本地文件路徑HDFS文件系統(tǒng)路徑`?*<易錯(cuò):記 源路徑→目的路徑>* |

| **-get** ?將HDFS文件系統(tǒng)中的文件下載回來 ?`hdfs dfs -get HDFS文件系統(tǒng)路徑 本地文件系統(tǒng)路徑` ?????*<易錯(cuò)>* ?ps:HDFS有一個(gè)和put和get類似的而方法copyFromlocal相當(dāng)于put和copyTolocal相當(dāng)于get |

| **-cat** ?查看HDFS文件系統(tǒng)中的文件內(nèi)容 ?`hdfs dfs -cat HDFS文件系統(tǒng)中文件的路徑` ?ps:不要查看非文件|

| **-cp** ??HDFS文件系統(tǒng)中進(jìn)行復(fù)制操作 ?`hdfs dfs -cp源HDFS文件系統(tǒng)中的文件路徑 目標(biāo)HDFS文件系統(tǒng)中的路徑` |

| **-mv** ?HDFS文件系統(tǒng)中的文件進(jìn)行移動操作 ?`hdfs dfs -mv源HDFS文件系統(tǒng)中的文件路徑 目標(biāo)HDFS文件系統(tǒng)中的路徑` ps: 將源文件移動目標(biāo)路徑,這個(gè)命令可允許有多個(gè)源路徑,此時(shí)目標(biāo)路徑必須是一個(gè)文件夾(目錄)不允許不同的文件系統(tǒng)互相移動文件|

| **-du** ??查看HDFS文件系統(tǒng)中文件的大小 ??`hdfs dfs -du HDFS文件系統(tǒng)中路徑中的一個(gè)文件` |

| **-mkdir** ??在HDSF系統(tǒng)中創(chuàng)建文件夾mkdir創(chuàng)建文件夾 ?ps:遞歸創(chuàng)建+`-p` |

| **-rm** ??刪除HDFS文件系統(tǒng)中的目錄或文件 ?`hdfs dfs -rm HDFS文件系統(tǒng)路徑` ??`hdfs dfs -rm -r HDFS文件系統(tǒng)路徑` ?ps: 只能是單個(gè)文件 或 空目錄,若參數(shù)文件夾中有多個(gè)文件 加-r |

| **-chmod** ??更改文件的權(quán)限 ?`hdfs dfs -chmod -R權(quán)限值HDFS文件系統(tǒng)路徑下的文件夾` ps: 所有每三位可以作為一個(gè)八進(jìn)制處理777是滿權(quán)限r(nóng)wx,+R之后, 文件夾下的所有子文件和文件夾都會被修改|

| **-appendTofile** ?追加一個(gè)文件到已經(jīng)存在文件的末尾`hadoop fs -appendTofile ./hello.txt /hello.txt` |

| **-getmerge** ?合并下載多個(gè)文件`hadoop fs -getmerge /aaa/log.* ./log.sum` |

| **-df** ?統(tǒng)計(jì)文件系統(tǒng)的可用空間信息`hadoop fs -df -h /` ????|

| ?????????????????????????????????????????????????????????????|

?

HDFS的工作機(jī)制

?

在了解工作機(jī)制之前,我們先來看看幾個(gè)重要角色:

?

?NameNode

?

1. master,它是一個(gè)管理者,維護(hù)著整個(gè)文件系統(tǒng)的文件目錄樹

2. 儲存數(shù)據(jù)庫(Block)映射信息,保存元數(shù)據(jù)信息包括:文件的所屬權(quán),文件的權(quán)限,文件大小,時(shí)間(Block列表,Block偏移量),位置信息

3. 主要職責(zé):處理客戶端讀寫請求,收集DateNode匯報(bào)的Block列表信息<*不會保存到本地系統(tǒng)中*>

?

**DateNode**

?

1. Slave,它是一個(gè)從節(jié)點(diǎn),簡單理解就是NameNode的奴隸

2. 存儲用戶的文件塊數(shù)據(jù)

3. 主要職責(zé):定期向NameNode匯報(bào)自身所持有的block信息(心跳機(jī)制),執(zhí)行數(shù)據(jù)塊的讀/寫操作

?

?Secondary NameNode

?

1. 檢查點(diǎn)節(jié)點(diǎn),表面上看SecondaryNameNode是NameNode的備份,實(shí)際上SecondaryNameNode的主要作用并不是備份

2. 主要職責(zé):定期合并fsimage和edit log,并推送給NameNode

?

問題引入:一個(gè)已經(jīng) 運(yùn)行十年的集群,最近的fsimage(鏡像)是NameNode十年前格式化產(chǎn)生,這么多年的操作日志被edit log(日志)記錄已達(dá)幾百T。那么問題來了,如果我要重啟這個(gè)集群,這么大日志文件,必定要重啟很久,我們的時(shí)間并不充裕該 如何解決這個(gè)問題?

?

*<問題提?。褐灰狽ameNode不格式化或重新啟動,fsimage將保持原始狀態(tài),edits會不斷的增加>*

?

此時(shí)我們引入Secondary NameNode, 把PN中的edit?log?和fsimage在SN中merge,此時(shí)PN還會繼續(xù)產(chǎn)生新的日志,記錄合并和合并期間的操作,合并之后新fsimage會拷貝回PN中,循環(huán)上面的操作.以此能保持edit log文件處于比較小的狀態(tài),fsimage的時(shí)間點(diǎn)也不會太久遠(yuǎn)

?

**fsimage是如何產(chǎn)生的呢?**

?

HDFS系統(tǒng)要開始運(yùn)行的時(shí)候需要先對NameNode進(jìn)行一次格式化,那么第一次格式化就會產(chǎn)生一個(gè)fsimage文件,但是這個(gè)文件是個(gè)空文件,NameNode啟動的時(shí)候會加載fsimage?然后執(zhí)行edit log加載到內(nèi)存中,然后立刻向磁盤中寫一個(gè)新的fsimage文件,這個(gè)fsimage就是一個(gè)最新的儲存信息

?

**緊急情況時(shí),可以輔助恢復(fù)NameNode**

?

namenode和secondary namenode的工作目錄存儲結(jié)構(gòu)完全相同,所以,當(dāng)namenode故障退出需要重新恢復(fù)時(shí),可以從secondary namenode的工作目錄中將fsimage拷貝到namenode的工作目錄,以恢復(fù)namenode的元數(shù)據(jù)

?

HDFS讀寫數(shù)據(jù)流程

?

HDFS讀數(shù)據(jù)流程

?

簡單版本

?

客戶端將要讀取的文件路徑發(fā)送給namenode,namenode獲取文件的元信息(主要是block的存放位置信息)返回給客戶端,客戶端根據(jù)返回的信息找到相應(yīng)datanode逐個(gè)獲取文件的block并在客戶端本地進(jìn)行數(shù)據(jù)追加合并從而獲得整個(gè)文件

標(biāo)題名稱:好程序員大數(shù)據(jù)學(xué)習(xí)路線分享HDFS學(xué)習(xí)總結(jié)
文章網(wǎng)址:http://jinyejixie.com/article6/ppieig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站營銷、網(wǎng)站內(nèi)鏈云服務(wù)器、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
黄陵县| 浦县| 永吉县| 九台市| 环江| 桑日县| 朔州市| 铁力市| 土默特左旗| 麦盖提县| 吴忠市| 庄河市| 信丰县| 民县| 密山市| 海淀区| 华亭县| 瑞金市| 乌兰察布市| 垣曲县| 合作市| 贵定县| 平邑县| 开远市| 岳西县| 荆门市| 墨脱县| 林甸县| 临沂市| 镇雄县| 策勒县| 镇原县| 日喀则市| 铁岭县| 闽侯县| 石门县| 雷州市| 项城市| 祁门县| 正镶白旗| 连南|