HDFS 2.0應(yīng)用場(chǎng)景、原理、基本 架構(gòu)及使用方法培訓(xùn)課件_第1頁(yè)
HDFS 2.0應(yīng)用場(chǎng)景、原理、基本 架構(gòu)及使用方法培訓(xùn)課件_第2頁(yè)
HDFS 2.0應(yīng)用場(chǎng)景、原理、基本 架構(gòu)及使用方法培訓(xùn)課件_第3頁(yè)
HDFS 2.0應(yīng)用場(chǎng)景、原理、基本 架構(gòu)及使用方法培訓(xùn)課件_第4頁(yè)
HDFS 2.0應(yīng)用場(chǎng)景、原理、基本 架構(gòu)及使用方法培訓(xùn)課件_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

LOGOHDFS

2.0應(yīng)用場(chǎng)景、原理、基本架構(gòu)及使用方法2議程HDFS概述HDFS基本架構(gòu)和原理HDFS程序設(shè)計(jì)HDFS

2.0新特性總結(jié)HDFS是什么?源自于Google的GFS論文發(fā)表于2003年10月HDFS是GFS克隆版HadoopDistributedFile

System易于擴(kuò)展的分布式文件系統(tǒng)運(yùn)行在大量普通廉價(jià)機(jī)器上,提供容錯(cuò)機(jī)制為大量用戶提供性能不錯(cuò)的文件存取服務(wù)HDFS優(yōu)點(diǎn)高容錯(cuò)性數(shù)據(jù)自動(dòng)保存多個(gè)副本副本丟失后,自動(dòng)恢復(fù)適合批處理移動(dòng)計(jì)算而非數(shù)據(jù)數(shù)據(jù)位置暴露給計(jì)算框架適合大數(shù)據(jù)處理GB、TB、甚至PB級(jí)數(shù)據(jù)百萬(wàn)規(guī)模以上的文件數(shù)量10K+節(jié)點(diǎn)規(guī)模HDFS優(yōu)點(diǎn)流式文件訪問一次性寫入,多次讀取保證數(shù)據(jù)一致性可構(gòu)建在廉價(jià)機(jī)器上通過多副本提高可靠性提供了容錯(cuò)和恢復(fù)機(jī)制HDFS缺點(diǎn)低延遲數(shù)據(jù)訪問比如毫秒級(jí)低延遲與高吞吐率小文件存取占用NameNode大量?jī)?nèi)存尋道時(shí)間超過讀取時(shí)間并發(fā)寫入、文件隨機(jī)修改一個(gè)文件只能有一個(gè)寫者僅支持append議程1.

HDFS概述HDFS基本架構(gòu)和原理HDFS程序設(shè)計(jì)HDFS

2.0新特性總結(jié)7分布式文件系統(tǒng)的一種實(shí)現(xiàn)方式Server(10*

1TB)50fiGleB350

GB0.f5ilTe1B0.5

TB1.2filTeB21.2

TB100filGe4B100

GBServer(10*

1TB)(10*

1TB)file1:node1file2:node3file3:node4file4:node5…….file1file3file4file2file1file1Serverfile2file2Server(10*

1TB)file3file4file1:node1,node2,node3file2:node2,node3,node4file3:node4,mode5,node6file4:node5,node6.node7…….HDFS設(shè)計(jì)思想Server(10

TB)Server(10

TB)Server(10

TB)block1block2block3block4block1block1block2block2block3block3block4block46block1:node1,node2,node3block2:node2,node3,node4block3:node4,mode5,nodeblock4:node5,node6.node7…….Server(10

TB)64MB64MB64MB64MB……file350

GBblock1block2block3HDFS架構(gòu)HDFS架構(gòu)Active

Namenode主Master(只有一個(gè))管理HDFS的名稱空間管理數(shù)據(jù)塊映射信息配置副本策略處理客戶端讀寫請(qǐng)求Standby

NameNodeNameNode的熱備;定期合并fsimage和fsedits,推送給NameNode;當(dāng)ActiveNameNode出現(xiàn)故障時(shí),快速切換為新的ActiveNameNode。HDFS架構(gòu)Client文件切分與NameNode交互,獲取文件位置信息;與DataNode交互,讀取或者寫入數(shù)據(jù);管理HDFS;訪問HDFS。DatanodeSlave(有多個(gè))存儲(chǔ)實(shí)際的數(shù)據(jù)塊執(zhí)行數(shù)據(jù)塊讀/寫HDFS數(shù)據(jù)塊(block)文件被切分成固定大小的數(shù)據(jù)塊默認(rèn)數(shù)據(jù)塊大小為64MB,可配置若文件大小不到64MB,則單獨(dú)存成一個(gè)block為何數(shù)據(jù)塊如此之大數(shù)據(jù)傳輸時(shí)間超過尋道時(shí)間(高吞吐率)一個(gè)文件存儲(chǔ)方式按大小被切分成若干個(gè)block,存儲(chǔ)到不同節(jié)點(diǎn)上默認(rèn)情況下每個(gè)block有三個(gè)副本HDFS寫流程HDFS讀流程HDFS典型物理拓?fù)涿總€(gè)機(jī)架通常有16-64

個(gè)節(jié)點(diǎn)同一個(gè)機(jī)架內(nèi)任意兩個(gè)節(jié)點(diǎn)間共享1Gbps帶寬機(jī)架間帶寬為2-10GbpsHDFS副本放置策略RackARackB問題:一個(gè)文件劃分成多個(gè)block,每個(gè)block存多份,如何為每個(gè)block選擇節(jié)點(diǎn)存儲(chǔ)這幾份數(shù)據(jù)?Block副本放置策略:副本1:

同Client的節(jié)點(diǎn)上副本2:

不同機(jī)架中的節(jié)點(diǎn)上副本3:

與第二個(gè)副本同一機(jī)架的另一個(gè)節(jié)點(diǎn)上其他副本:隨機(jī)挑選HDFS可靠性策略文件損壞網(wǎng)絡(luò)或者機(jī)器失效NameNode掛掉常見的文件損壞網(wǎng)絡(luò)或者機(jī)器失效NameNode掛掉常見三的種三錯(cuò)種誤錯(cuò)情誤況情況文件完整性CRC32校驗(yàn)用其他副本取代損壞文件Heartbeat– Datanode

定期向Namenode發(fā)heartbeat元數(shù)據(jù)信息FSImage(文件系統(tǒng)鏡像)、Editlog(操作日志)多份存儲(chǔ)主備NameNode實(shí)時(shí)切換HDFS不適合存儲(chǔ)小文件元信息存儲(chǔ)在NameNode內(nèi)存中一個(gè)節(jié)點(diǎn)的內(nèi)存是有限的存取大量小文件消耗大量的尋道時(shí)間類比拷貝大量小文件與拷貝同等大小的一個(gè)大文件NameNode存儲(chǔ)block數(shù)目是有限的一個(gè)block元信息消耗大約150

byte內(nèi)存存儲(chǔ)1億個(gè)block,大約需要20GB內(nèi)存如果一個(gè)文件大小為10K,則1億個(gè)文件大小僅為1TB(但要消耗掉NameNode

20GB內(nèi)存)議程1.

HDFS概述HDFS基本架構(gòu)和原理HDFS程序設(shè)計(jì)HDFS

2.0新特性總結(jié)20HDFS訪問方式HDFS

Shell命令HDFSJava

APIHDFSREST

APIHDFS

Fuse:實(shí)現(xiàn)了fuse協(xié)議HDFS

lib

hdfs:C/C++訪問接口HDFS

其他語(yǔ)言編程API使用thrift實(shí)現(xiàn)支持C++、Python、php、C#等語(yǔ)言HDFS

Shell命令—概覽HDFS

Shell命令—文件操作命令HDFS

Shell命令—文件操作命令將本地文件上傳到HDFS上bin/hadoopfs-copyFromLocal/local/data

/hdfs/data刪除文件/目錄bin/hadoop

fs

-rmr /hdfs/data創(chuàng)建目錄bin/hadoop

fs

-mkdir /hdfs/dataHDFS

Shell命令—管理命令HDFS

Shell命令—管理腳本在sbin目錄下start-all.shstart-dfs.shstart-yarn.shhadoop-deamon(s).sh單獨(dú)啟動(dòng)某個(gè)服務(wù)hadoop-deamon.shstart

namenodehadoop-deamons.sh

start

namenode(通過SSH登錄到各個(gè)節(jié)點(diǎn))HDFS

Shell命令—文件管理命令fsck檢查hdfs中文件的健康狀況查找缺失的塊以及過少或過多副本的塊查看一個(gè)文件的所有數(shù)據(jù)塊位置刪除損壞的數(shù)據(jù)塊HDFS

Shell命令—文件管理命令fsckHDFSShell命令—數(shù)據(jù)均衡器balancer數(shù)據(jù)塊重分布bin/start-balancer.sh-threshold<percentageofdiskcapacity>percentageofdisk

capacityHDFS達(dá)到平衡狀態(tài)的磁盤使用率偏差值值越低各節(jié)點(diǎn)越平衡,但消耗時(shí)間也更長(zhǎng)HDFS

Shell命令—設(shè)置目錄份額限制一個(gè)目錄最多使用磁盤空間bin/hadoopdfsadmin-setSpaceQuota1t

/user/username限制一個(gè)目錄包含的最多子目錄和文件數(shù)目bin/hadoopdfsadmin-setQuota10000

/user/usernameHDFS

Shell命令—增加/移除節(jié)點(diǎn)加入新的datanode步驟1:將已存在datanode上的安裝包(包括配置文件等)拷貝到新datanode上;步驟2:?jiǎn)?dòng)新datanode:sbin/hadoop-deamon.shstart

datanode移除舊datanode步驟1:將datanode加入黑名單,并更新黑名單,在NameNode上,將datanode的host或者ip加入配置選項(xiàng)dfs.hosts.exclude指定的文件中步驟2:移除datanodebin/hadoopdfsadmin

-refreshNodesHDFS

Java

API介紹Configuration類:該類的對(duì)象封裝了配置信息,這些配置信息來自core-*.xml;FileSystem類:文件系統(tǒng)類,可使用該類的方法對(duì)文件/目錄進(jìn)行操作。一般通過FileSystem的靜態(tài)方法get獲得一個(gè)文件系統(tǒng)對(duì)象;FSDataInputStream和FSDataOutputStream類:HDFS中的輸入輸出流。分別通過FileSystem的open方法和create方法獲得。以上類均來自java包:org.apache.hadoop.fsHDFS

Java程序舉例將本地文件拷貝到HDFS上;Configurationconfig=newConfiguration();FileSystemhdfs=FileSystem.get(config);PathsrcPath=new

Path(srcFile);PathdstPath=new

Path(dstFile);hdfs.copyFromLocalFile(srcPath,

dstPath);創(chuàng)建HDFS文件;//byte[]

buff

文件內(nèi)容Configurationconfig=newConfiguration();FileSystemhdfs=FileSystem.get(config);Pathpath=new

Path(fileName);FSDataOutputStreamoutputStream=

hdfs.create(path);outputStream.write(buff,0,

buff.length);HDFS

多語(yǔ)言API—借助thriftThriftServer(FileSystem)Thrift

ClientThrift

ClientThrift

ClientHadoopCluster小象讓你的科技數(shù)據(jù)產(chǎn)生價(jià)值hadoopfs.thrift接口定義PHP語(yǔ)言訪問HDFSPython語(yǔ)言訪問HDFS議程1.

HDFS概述HDFS基本架構(gòu)和原理HDFS程序設(shè)計(jì)HDFS 2.0新特性總結(jié)38Hadoop

2.0新特性NameNode

HANameNode

FederationHDFS

快照(snapshot)HDFS

緩存(in-memory

cache)HDFS

ACL異構(gòu)層級(jí)存儲(chǔ)結(jié)構(gòu)(Heterogeneous

Storagehierarchy)HA與FederationNN1(active)NN2(standby)NN4(standby)NN3(active)DN1DN2DN3DN4DN5DN6DN7DN8DN9DN10SharedZookeeper異構(gòu)層級(jí)存儲(chǔ)結(jié)構(gòu)—背景HDFS將所有存儲(chǔ)介質(zhì)抽象成性能相同的Disk<property><name>dfs.datanode.data.dir</name><value>/dir0,/dir1,/dir2,/dir3</value></property>存儲(chǔ)介質(zhì)種類繁多,一個(gè)集群中存在多種異構(gòu)介質(zhì)磁盤、SSD、RAM等多種類型的任務(wù)企圖同時(shí)運(yùn)行在同一個(gè)Hadoop集群中批處理,交互式處理,實(shí)時(shí)處理不同性能要求的數(shù)據(jù),最好存儲(chǔ)在不同類別的存儲(chǔ)介質(zhì)上異構(gòu)層級(jí)存儲(chǔ)結(jié)構(gòu)—原理每個(gè)節(jié)點(diǎn)是由多種異構(gòu)存儲(chǔ)介質(zhì)構(gòu)成的<property><name>dfs.datanode.data.dir</name><value>[disk]/dir0,[disk]/dir1,[ssd]/dir2,[ssd]/dir3</value></property>異構(gòu)層級(jí)存儲(chǔ)結(jié)構(gòu)—原理HDFS僅提供了一種異構(gòu)存儲(chǔ)結(jié)構(gòu),并不知道存儲(chǔ)介質(zhì)的性能;HDFS為用戶提供了API,以控制目錄/文件寫到什么介質(zhì)上;HDFS為管理員提供了管理工具,可限制每個(gè)用戶對(duì)每種介質(zhì)的可使用份額;目前完成度不高階段1:DataNode支持異構(gòu)存儲(chǔ)介質(zhì)(HDFS-2832,完成)階段2:為用戶提供訪問API(HDFS-5682,未完成)HDFS

ACL—背景:現(xiàn)有權(quán)限管理的局限性/bank/exchange-rw-r------rw-r-----manager3 bob team1 02014-05-0421:33

/bank/exchange3 manager

team1 02014-05-0421:33

/bank/exchangebobtomlucyteam2和team3也需要讀權(quán)限,怎么辦??HDFS

ACL—基于POSIX

ACL的實(shí)現(xiàn)對(duì)當(dāng)前基于POSIX文件權(quán)限管理的補(bǔ)充(HDFS-4685);啟動(dòng)該功能;將node.acls.enabled置為true使用方法;hdfsdfs-setfacl-muser:tom:rw-

/bank/exchangehdfsdfs-setfacl-muser:lucy:rw-

/bank/exchangehdfsdfs-setfacl-mgroup:team2:r--

/bank/exchangehdfsdfs-setfacl-mgroup:team3:r--

/bank/exchangeHDFS快照—背景HDFS上文件和目錄是不斷變化的,快照可以幫助用戶保存某個(gè)時(shí)刻的數(shù)據(jù);HDFS快照的作用防止用戶誤操作刪除數(shù)據(jù)數(shù)據(jù)備份HDFS快照—基本使用方法一個(gè)目錄可以產(chǎn)生快照,當(dāng)且僅當(dāng)它是Snapshottable;bin/hdfsdfsadminallowSnapshot

<path>創(chuàng)建/刪除快照;bin/hdfsdfs-createSnapshot<path>

[<snapshotName>]bin/hdfsdfs-deleteSnapshot<path>

[<snapshotName>]快照存放位置和特點(diǎn);快照是只讀的,不可修改快照位置:<snapshottable_dir_path>/.snapshot<snapshottable_dir_path>/.snapshot/snap_nameHDFS緩存—背景HDFS自身不提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論