周末班06-hadoop01it18掌hdfs文件系統(tǒng)_第1頁
周末班06-hadoop01it18掌hdfs文件系統(tǒng)_第2頁
周末班06-hadoop01it18掌hdfs文件系統(tǒng)_第3頁
周末班06-hadoop01it18掌hdfs文件系統(tǒng)_第4頁
周末班06-hadoop01it18掌hdfs文件系統(tǒng)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Hadoop 文件系統(tǒng)徐培成HDFS設計適用于超大文件streaming訪問商業(yè)硬件不適用低延遲訪問大量小文件多用戶寫入,多次修改hadoop文件系統(tǒng)HDFS概念塊默認128M。磁盤的傳輸速率是100M/s,尋址時間是10ms,讓尋址時間是傳輸時間的1%,因此設置的block大小為:(100 x 0.01ms) * 100M/s = 100M - 128M 檢查文件block的狀態(tài)hadoop fsck / files -blockshadoop文件系統(tǒng)HDFS概念namenode & datanodenamenode:鏡像文件+編輯日志,存放于本地磁盤. 以及數(shù)據(jù)節(jié)點信息,不含block信息

2、。block 信息在cluster啟動時由datanode重建。datanode :work節(jié)點,存儲檢索block,定期向 namoenode發(fā)送block list。hadoop文件系統(tǒng)HDFS概念namenode單點故障實時將數(shù)據(jù)寫到遠程的主機上配置輔助名稱節(jié)點,定期合并鏡像文件和編輯日志。和namenode分別列在兩個主機中,內(nèi)存配置一致。hadoop文件系統(tǒng)命令行接口默認的文件系統(tǒng)hdfs-site.xmlfs.defaultFS=hdfs:/s0:8020最小副本數(shù)dfs.replication=1hadoop文件系統(tǒng)命令行接口基本文件系統(tǒng)操作$hadoop fs -copyFor

3、mLocal /a.txt hdfs:/s0/user/ /指定路徑$hadoop fs -copyFormLocal /a.txt /s0/user/ /省略授權(quán)$hadoop fs -copyFormLocal /a.txt s0/user/ /相對路徑$hadoop fs -copyToLocal /user/a.txt /$hadoop fs -mkdir -p /user/it18zhang$hadoop fs -ls .文件訪問權(quán)限r(nóng):readw:writex:executehadoop文件系統(tǒng)hadoop fs 常規(guī)選項-appendToFile/追加到文件hadoop fs -

4、appendToFile localFile -cat /顯示文件內(nèi)容,可通配hadoop fs -cat data/*.txt-checksum/顯示校驗和hadoop fs -checksum data/a.txt-chgrp/修改組別hadoop fs -chgrp -R /遞歸gname/組名data/路徑名hadoop文件系統(tǒng)hadoop fs 常規(guī)選項-chmod/修改模式(權(quán)限)hadoop fs -chmod -R/遞歸777/數(shù)字型,a+x,g-w,o+xdata/文件或目錄-chown/改變擁有者hadoop fs -chown -R username pathhadoop

5、文件系統(tǒng)hadoop fs 常規(guī)選項-copyFromLocal/從本地文件復制hadoop fs -copyFromLocallocalFile/本地文件data/hdfs目錄-copyToLocal/復制hdfs到本地hadoop fs -copyToLocal data local-cp/在hdfs內(nèi)部復制文件hadoop fs -cp data/a.txt data/b.txthadoop文件系統(tǒng)HDFS Snapshot(快照)快照是文件系統(tǒng)的只讀拷貝,可以是整個文件系統(tǒng)或系統(tǒng)子樹。重要用做數(shù)據(jù)備份,防止用戶出錯或災難性恢復。快照創(chuàng)建瞬間完成。快照只有發(fā)生修改是才會造成內(nèi)存的消耗。程

6、度和修改的目錄數(shù)量相關(guān)。數(shù)據(jù)節(jié)點的block不會進行復制??煺瘴募涗浀氖莃lock列表和文件大小,沒有拷貝數(shù)據(jù)。快照不會影響正規(guī)的HDFS操作。修改操作以時間倒序進行記錄以備可以直接訪問當前數(shù)據(jù)??煺諗?shù)據(jù)是通過當前數(shù)據(jù)減去修改量計算得出的。hadoop文件系統(tǒng)hadoop文件系統(tǒng)HDFS Snapshot(快照)快照目錄不可以嵌套如果一個目錄的上級或下級是可快照目錄,則該目錄不能再設置可快照??煺漳夸浺?snapshot命名/foo/foo是可快照目錄/foo/bar/bar是其子目錄/foo/.snapshot/s0/bar/引用bar目錄設置目錄為可快照目錄hdfs dfsadmin -

7、allowSnapshot path/允許快照hdfs dfsamdin -disallowSnapshow path/禁止快照一個目錄可以創(chuàng)建多個快照注意:快照路徑不是.snapshot目錄,是hdfs原始的目錄。HDFS Snapshot(快照)創(chuàng)建快照hadoop fs -createSnapshot /user/ubuntu/創(chuàng)建快照hadoop fs -createSnapshot /user/ubuntu sn1/指定快照名顯示目錄hadoop fs -ls -R /不會顯示快照目錄刪除快照hadoop fs -deleteSnapshot path snapname/刪除快照ha

8、doop fs -deleteSnapshot /user/ubuntu sn1可快照目錄列表hdfs lsSnapshottableDir/快照對別報表hdfs snapshotDiff /user/ubuntu sn1 sn2/hadoop文件系統(tǒng)hadoop fs 常規(guī)選項df/查看容量、可用、已用hadoop fs -df -h path/名稱節(jié)點的數(shù)據(jù)du/顯示空間總量hadoop fs -du -s -h /userhadoop文件系統(tǒng)回收站hadoop默認的回收站是關(guān)閉的,時間單位:分鐘。對應當前用戶文件夾的.Trash目錄。rm時會將文件移動到該目錄下。core-site.xm

9、l erval 30 hadoop文件系統(tǒng)回收站hadoop文件系統(tǒng)回收站恢復文件將.Trash目錄的文件移動出來即可。hadoop fs -mv /user/ubuntu/.Trash/xx/x/x data/清空回收站hadoop fs -expunge/?測試刪除回收站hadoop fs -rm -R /user/ubuntu/.Trashhadoop文件系統(tǒng)hadoop fs 常規(guī)選項find/顯示指定路徑的文件樹hadoop fs -find /user/ubuntuget/等價于copyToLocalhadoop文件系統(tǒng)hadoop fs 常規(guī)選項getfacl獲得指定文件的訪問控

10、制列表,ACL默認是關(guān)閉的。 hdfs-site.xmlnode.acls.enabled=false$hadoop fs -getfacl -R /user/ubuntusetfacl設置訪問控制列表hdfs dfs -setfacl -m user:hadoop:rw- /filehadoop文件系統(tǒng)hadoop fs 常規(guī)選項getfattr顯示文件或目錄的擴展屬性名和值。hadoop fs -getfattr -R/遞歸-n /指定擴展屬性-d/全部擴展屬性path/指定路徑hadoop fs -getfattr -R -d /user/ubuntusetfattr設置文件或者目錄的擴

11、展屬性hadoop fs -setfattr -n 1 -v value1 /user/ubuntuhadoop文件系統(tǒng)hadoop fs 常規(guī)選項getmerge/合并hdfs文件到localhadoop fs -getmerge data/ /tmp.txtls/mkdir/-p 創(chuàng)建目錄moveFromLocal/移動到hdfsmoveToLocal/未實現(xiàn)mv/在hdfs上進行移動put/copyFromLocalhadoop文件系統(tǒng)hadoop fs 常規(guī)選項rmrmdirhadoop文件系統(tǒng)hadoop fs 常規(guī)選項setrep/設置復制因子hadoop fs -setrep -

12、w/等待-R/無意義,兼容目的 3 /user/ubuntustat/返回路徑信息hadoop fs -stat /user/ubuntuhadoop文件系統(tǒng)hadoop fs 常規(guī)選項tail/最后1k字節(jié)hadoop fs -tail data/a.txttest/判斷文件等是否存在之類的hadoop fs -test -e data/a.txttouchz/創(chuàng)建空文件hadoop fs -touchz /data/0.txthadoop文件系統(tǒng)hdfs admin -help/查看所有幫助文檔hdfs admin -report/統(tǒng)計信息. -safemode enter/進入安全模式l

13、eave/離開安全模式get/查看wait/等待hdfs dfsamin管理hadoop系統(tǒng)org.apache.hadoop.fs.FileSystem-文件系統(tǒng) 方案 類(org.apache.hadoop包)Local: local:/ LocalFileSystemHDFS: hdfs:/ hdfs.DistributedFileSystemHFTP: hftp:/ hdfs.HftpFileSystems3 s3:/ fs.sa.S3FileSystem通過方案探測$hadoop fs -ls file:/hadoop文件系統(tǒng)從URL讀取數(shù)據(jù)InputStream is = new

14、Url(hdfs:/s0:8020/uesr/a.txt) .openStream(); /?hadoop文件系統(tǒng)從URL讀取數(shù)據(jù)static URL.setURLStreamHandlerFactory( new FsUrlStreamHandlerFactory(); InputStream in = null; try in = new URL(args0).openStream(); IOUtils.copyBytes(in, System.out, 4096, false); finally IOUtils.closeStream(in);hadoop文件系統(tǒng)FileSystem/*

15、 conf從classpath讀取配置文件 */public static FileSystem get(Configuration conf) throws IOException/*通過uri模式?jīng)Q定fs*/public static FileSystem get(URI uri, Configuration conf) throws IOExceptionpublic static FileSystem get(URI uri, Configuration conf, String user) throws IOExceptionpublic static LocalFileSystem

16、 getLocal(Configuration conf).hadoop文件系統(tǒng)讀取文件FSDataFileInputStream FileSystem.open(Path p)InputStream is = fs.open(new Path(/user/a.txt);.IOUtils.copy(.)運行hadoop xx.xx.ClassNamehadoop文件系統(tǒng)讀取文件FSDataInputStreamseek(.)getPos(.)/* 讀取指定位置數(shù)據(jù)到buf中 */int read(long position, byte buffer, int offset, int lengt

17、h)/*/void readFully(byte buf,int length)hadoop文件系統(tǒng)寫入文件FSDataOutputStream/*創(chuàng)建*/public FSDataOutputStream create(Path f) throws IOException/*追加模式*/public FSDataOutputStream append(Path f) throws IOExceptionhadoop文件系統(tǒng)寫入文件FSDataOutputStream/*查詢位置*/public long getPos() throws IOException/*創(chuàng)建目錄*/public bo

18、olean mkdirs(Path f) throws IOExceptionhadoop文件系統(tǒng)查詢文件系統(tǒng)FileStatusFileStatus stat = fs.getFileStatus(path);stat.getPath()stat.isDirectory()stat.getLen()stat.ModificationTime()stat.getReplication()stat.getBlockSize()stat.getOwn()|getGroup()|getPermission()boolean b = fs.exist(path)hadoop文件系統(tǒng)查詢文件系統(tǒng)列出文件

19、public FileStatus listStatus(Path f) throws IOExceptionpublic FileStatus listStatus(Path f, PathFilter filter) throws IOExceptionpublic FileStatus listStatus(Path files) throws IOExceptionpublic FileStatus listStatus(Path files, PathFilter filter) throws IOExceptionFileUtil工具類hadoop文件系統(tǒng)查詢文件系統(tǒng)文件模式had

20、oop文件系統(tǒng)查詢文件系統(tǒng)文件模式hadoop文件系統(tǒng)Hadoop中的NameNode好比是人的心臟,非常重要,絕對不可以停止工作。在hadoop1時代,只有一個NameNode。如果該NameNode數(shù)據(jù)丟失或者不能工作,那么整個集群就不能恢復了。這是hadoop1中的單點問題,也是hadoop1不可靠的表現(xiàn),如圖1所示。hadoop2就解決了這個問題。hadoop NameNode HAhadoop NameNode HAhadoop2.2.0中HDFS的高可靠指的是可以同時啟動2個NameNode。其中一個處于工作狀態(tài),另一個處于隨時待命狀態(tài)。這樣,當一個NameNode所在的服務器宕機

21、時,可以在數(shù)據(jù)不丟失的情況下,手工或者自動切換到另一個NameNode提供服務。 這些NameNode之間通過共享數(shù)據(jù),保證數(shù)據(jù)的狀態(tài)一致。多個NameNode之間共享數(shù)據(jù),可以通過Nnetwork File System或者Quorum Journal Node。前者是通過linux共享的文件系統(tǒng),屬于操作系統(tǒng)的配置;后者是hadoop自身的東西,屬于軟件的配置。hadoop NameNode HAhadoop NameNode HA兩個NameNode為了數(shù)據(jù)同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態(tài)的NameNode的命名空間有任何修改時,會告

22、知大部分的JournalNodes進程。standby狀態(tài)的NameNode有能力讀取JNs中的變更信息,并且一直監(jiān)控edit log的變化,把變化應用于自己的命名空間。standby可以確保在集群出錯時,命名空間狀態(tài)已經(jīng)完全同步hadoop NameNode HA兩個NameNode為了數(shù)據(jù)同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態(tài)的NameNode的命名空間有任何修改時,會告知大部分的JournalNodes進程。standby狀態(tài)的NameNode有能力讀取JNs中的變更信息,并且一直監(jiān)控edit log的變化,把變化應用于自己的命名空間。st

23、andby可以確保在集群出錯時,命名空間狀態(tài)已經(jīng)完全同步hadoop NameNode HA所有的datanodes必須配置兩個NameNode的地址,發(fā)送數(shù)據(jù)塊位置信息和心跳給他們兩個。同一時刻只有一個NameNode處于active狀態(tài), JNs必須確保同一時刻只有一個NameNode可以向自己寫數(shù)據(jù)NameNode的服務器硬件配置相同。JournalNode進程非常輕量,奇數(shù)個沒必要配置Secondary NameNodehadoop NameNode HA配置Nameservices名稱hdfs-site.xmlservices=mycluster/名字服務邏輯名nodes.myclu

24、ster=nn1,nn2/指定哪些nn名稱node.rpc-address.mycluster.nn1/配置每個nn的=s0:8020/物理地址node.rpc-address.mycluster.nn1=s1:8020hadoop NameNode HA配置Nameservices名稱hdfs-site.xmlnode.http-address.mycluster.nn1=s0:50070/每個NN的web地址node.http-address.mycluster.nn1=s1:50070NN讀寫jns的url地址hdfs-site.xmlnode.shared.edits.dir= :84

25、85; :8485; :8485/myclusterhadoop NameNode HA配置NN的代理容錯類hdfs-site.xmlvider.mycluster=org.apache.Hadoop.node.ha.ConfiguredFailoverProxyProvider配置active NN出錯處理策略,通常是關(guān)閉hdfs-site.xmldfs.ha.fencing.methods=sshfencedfs.ha.fencing.ssh.private-key-files=/home/exampleuser/.ssh/id_rsahadoop NameNode HA配置Client連

26、接NN的集群名core-site.xmlfs.defaultFS=hdfs:/mycluster配置JournalNode數(shù)據(jù)存放目錄hdfs-site.xmldfs.journalnode.edits.dir=/path/to/journal/node/local/datahadoop NameNode HA部署啟動journalnode進程Hadoop-daemon.sh journalnode處理NNa)若主NN未格式化,格式化主NN,再啟動NN hadoop namenode -format hadoop-daemon.sh start namenode /啟動NNb) 格式化從NN

27、hdfs namenode -bootstrapStandby /從nn上進行 hadoop-daemon.sh start namenode /啟動從NNhadoop NameNode HA部署處理NNc)激活nn hdfs haadmin -transitionToActive hadoop100啟動兩個NN通過web觀察nn,一個是激活,一個是standby。安全切換hdfs haadmin -failover -forcefence serviceId serviceId2hadoop quota配額是設置目錄所含文件或文件夾的數(shù)量,不是大小。配額不能對文件進行設置配額范圍是1Long

28、.Max_value之間配額設置不得小于已有文件數(shù)量配額可以設定空間配額和目錄配額1強制將目錄設置為空目錄hdfs管理篇使用hdfs dfsadmin命令可以對hdfs文件系統(tǒng)進行管理。比如查看報表、管理配額等。hdfs dfsadmin -help/查看所有幫助hdfs dfsadmin -help report/查看指定命令幫助hdfs管理篇查看文件系統(tǒng)以及統(tǒng)計報表hdfs dfsadmin -report -live/活躍數(shù)據(jù)節(jié)點-dead /消亡數(shù)據(jù)節(jié)點- missioning/hdfs管理篇safemode是namenode的狀態(tài),該狀態(tài)下不能修改名字空間,不可以復制和刪除block。hadoop啟動時自動進入安全模式,配置的block最小百分比滿足最小副本數(shù)時自動離開安全模式。也可以手動控制安全模式。hdfs dfsadmin -safemode enter/進入leave/離開get/查詢wait/等待hdfs管理篇saveNamespace保存當前名字空間到存儲目錄并重置編輯log。需要在安

溫馨提示

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

評論

0/150

提交評論