好程序員大數(shù)據(jù)學(xué)習(xí)路線分享HDFS學(xué)習(xí)總結(jié)-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元膠州做網(wǎng)站,已為上家服務(wù),為膠州各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

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

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

HDFS的重要特性

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

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

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

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

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

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

1. 高可靠性

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

2. 高擴(kuò)展性

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

3. 高效性

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

4. 高容錯(cuò)性

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

HDFS的缺點(diǎn)

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

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

2. 無法高效存儲(chǔ)大量小文件

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

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

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

針對(duì)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的映射存儲(chǔ)和管理分開了,由多個(gè)Metadata存儲(chǔ)節(jié)點(diǎn)和一個(gè)查詢Master節(jié)點(diǎn)組成。)

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

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

HDFS的Shell命令

| **-help** 輸出命令的手冊(cè) ????????????????????????????????????|

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

| **-ls** 顯示目錄信息 ??`hadoop fs -ls ??hdfs://hadoop-server01:9000/` ??ps:這些參數(shù)中,所有的hdfs**路徑都可以簡(jiǎn)寫 ??-->`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)行移動(dòng)操作 ?`hdfs dfs -mv 源HDFS文件系統(tǒng)中的文件路徑 目標(biāo)HDFS文件系統(tǒng)中的路徑` ps: 將源文件移動(dòng)目標(biāo)路徑,這個(gè)命令可允許有多個(gè)源路徑,此時(shí)目標(biāo)路徑必須是一個(gè)文件夾(目錄)不允許不同的文件系統(tǒng)互相移動(dò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)限 rwx ,+R之后, 文件夾下的所有子文件和文件夾都會(huì)被修改 |

| **-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. 儲(chǔ)存數(shù)據(jù)庫(kù)(Block)映射信息,保存元數(shù)據(jù)信息包括:文件的所屬權(quán),文件的權(quán)限,文件大小,時(shí)間(Block列表,Block偏移量),位置信息

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

**DateNode**

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

2. 存儲(chǔ)用戶的文件塊數(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不格式化或重新啟動(dòng),fsimage將保持原始狀態(tài),edits會(huì)不斷的增加 >*

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

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

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

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

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

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

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

簡(jiǎn)單版本

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱:好程序員大數(shù)據(jù)學(xué)習(xí)路線分享HDFS學(xué)習(xí)總結(jié)-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article2/cdsgic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、微信小程序關(guān)鍵詞優(yōu)化、App開發(fā)微信公眾號(hào)、面包屑導(dǎo)航

廣告

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

手機(jī)網(wǎng)站建設(shè)