久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > HDFS的常用shell命令詳解

HDFS的常用shell命令詳解

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2023-02-27 17:20:00 1677489600

HDFS的常用shell命令詳解

  注意:訪問hdfs系統(tǒng)的指令

  hadoop dfs --- 已過時(shí)

  hadoop fs -- 使用范圍更大

  hdfs dfs --范圍相對較小

  hadoop fs 和 hdfs dfs之間沒有太大的區(qū)別

  1. 在命令行中輸入hdfs,回車后,就會(huì)提示hdfs后可以使用哪些命令,其中有一個(gè)是dfs。

  2. 在命令行中輸入hdfs dfs,回車后,就會(huì)提示dfs后可以添加的一些常用shell命令

  常用shell命令

  注意:分布式文件系統(tǒng)的路徑在命令行中 要從/開始寫,即絕對路徑

  1. 創(chuàng)建目錄

  [-mkdir [-p]...]#在分布式文件系統(tǒng)上創(chuàng)建目錄 -p,多層級創(chuàng)建

  調(diào)用格式:hdfs dfs -mkdir(-p) /目錄

  2. 上傳指令

  [-put [-f] [-p] [-l]...] #將本地文件系統(tǒng)的文件上傳到分布式文件系統(tǒng)

  調(diào)用格式:hdfs dfs -put/本地文件 /hadoop

  注意:

  1)/hadoop是hdfs上面的路徑的減縮版,全稱是:hdfs://namenode的名字:分布式文件系統(tǒng)的端口號/hadoop 例如:hdfs://master:9000/hadoop

  2)hadoop作為文件,在操作之前是可以不存在的.

  [-moveFromLocal...]#將本地文件系統(tǒng)的文件上傳到分布式文件系統(tǒng)

  調(diào)用格式:同put

  注意:這里是將本地文件剪切到分布式文件系統(tǒng)

  [-copyFromLocal [-f] [-p] [-l]...]

  調(diào)用格式:同put

  注意:這里是將本地文件拷貝到分布式文件系統(tǒng)

  3. 查看指令

  [-ls [-d] [-h] [-R] [...]]#查看分布式文件系統(tǒng)的目錄里內(nèi)容

  調(diào)用格式:hdfs dfs -ls/

  [-cat [-ignoreCrc]...] #查看分布式文件系統(tǒng)的文件內(nèi)容

  調(diào)用格式:hdfs dfs -cat/xxx.txt

  [-tail [-f]]#查看分布式文件系統(tǒng)的文件內(nèi)容

  調(diào)用格式:hdfs dfs -tail/xxx.txt

  注意:默認(rèn)最多查看1000行

  4. 下載指令

  [-copyToLocal [-p] [-ignoreCrc] [-crc]...]

  調(diào)用格式:hdfs dfs -copyToLocal/hdfs上的路徑 /本地路徑 例如:hdfs dfs -copyToLocal/hadoop /root/hadooptest

  注意:

  1)本地路徑的文件夾可以不存在

  2)這里是將hadoop整體拷貝到線下路徑中

  [-moveToLocal]

  注意:從hdfs的某個(gè)路徑將數(shù)據(jù)剪切到本地,已經(jīng)被遺棄了.不能使用.

  [-get [-p] [-ignoreCrc] [-crc]...]

  調(diào)用格式:同copyToLocal

  5. 刪除指令

  [-rm [-f] [-r|-R] [-skipTrash]...]

  調(diào)用格式:hdfs dfs -rm-r/hadoop

  注意:如果刪除文件夾需要加-r

  [-rmdir [--ignore-fail-on-non-empty]

...]

  調(diào)用格式:hdfs dfs -rmdir/hadoop

  注意:hadoop必須是空文件夾,如果非空必須使用rm刪除

  6. 查看磁盤利用率和文件大小

  [-df [-h] [...]] 查看分布式系統(tǒng)的磁盤使用情況

  調(diào)用格式:hdfs dfs -df/

  [-du [-s] [-h]...]#查看分布式系統(tǒng)上當(dāng)前路徑下文件的情況-h:human 以人類可讀的方式顯示

  調(diào)用格式:hdfs dfs -du/hadoop

  7. 向分布式文件系統(tǒng)中的文件里追加內(nèi)容

  [-appendToFile...]

  調(diào)用格式:hdfs dfs -appendToFile本地文件 hdfs上的文件

  注意:不支持在中間隨意增刪改操作

  8. 修改權(quán)限的,跟本地的操作一致,-R是讓子目錄或文件也進(jìn)行相應(yīng)的修改

  [-chgrp [-R] GROUP PATH...]

  [-chmod [-R] <mode[,mode]... octalmode="" |="">PATH...]

  [-chown [-R] [OWNER][:[GROUP]] PATH...]

  9. 修改文件的副本數(shù)

  [-setrep [-R] [-w]...]

  調(diào)用格式:hadoop fs -setrep 3/ 將hdfs根目錄及子目錄下的內(nèi)容設(shè)置成3個(gè)副本

  注意:當(dāng)設(shè)置的副本數(shù)量與初始化時(shí)默認(rèn)的副本數(shù)量不一致時(shí),集群會(huì)作出反應(yīng),比原來多了會(huì)自動(dòng)進(jìn)行復(fù)制.

  10. 查看文件的狀態(tài)

  hdfs dfs [generic options] -stat[format]...

  命令的作用:當(dāng)向hdfs上寫文件時(shí),可以通過dfs.blocksize配置項(xiàng)來設(shè)置文件的block的大小。這就導(dǎo)致了hdfs上的不同的文件block的大小是不相同的。有時(shí)候想知道hdfs上某個(gè)文件的block大小,可以預(yù)先估算一下計(jì)算的task的個(gè)數(shù)。stat的意義:可以查看文件的一些屬性。

  調(diào)用格式:hdfs dfs -stat[format] 文件路徑

  format的形式:

  %b:打印文件的大小(目錄大小為0)

  %n:打印文件名

  %o:打印block的size

  %r:打印副本數(shù)

  %y:utc時(shí)間 yyyy-MM-dd HH:mm:ss

  %Y:打印自1970年1月1日以來的utc的微秒數(shù)

  %F:目錄打印directory,文件打印regular file

  注意:

  1)當(dāng)使用-stat命令但不指定format時(shí),只打印創(chuàng)建時(shí)間,相當(dāng)于%y

  2)-stat 后面只跟目錄,%r,%o等打印的都是0,只有文件才有副本和大小

  11. 測試

  hdfs dfs [generic options] -test-[defsz]

  參數(shù)說明: -e:文件是否存在 存在返回0 -z:文件是否為空 為空返回0 -d:是否是路徑(目錄) ,是返回0

  調(diào)用格式:hdfs dfs -test-d文件

  實(shí)例:hdfs dfs -test-d/shelldata/111.txt && echo"OK"|| echo"no"

  解釋:測試當(dāng)前的內(nèi)容是否是文件夾 ,如果是返回ok,如果不是返回no

  12. 創(chuàng)建空文件

  hdfs dfs [generic options] -touchz...

  調(diào)用格式:hdfs dfs touchz /hadooptest.txt

  13. 顯示當(dāng)前文件夾及子文件夾的數(shù)量 子文件的數(shù)量以及 總大小

  hdfs dfs [generic options] -count[-q] [-h]...

  調(diào)用格式:hdfs dfs -count /hadoop

  14. 合并下載

  hdfs dfs [generic options] -getmerge[-nl]

  調(diào)用格式:hdfs dfs -getmergehdfs上面的路徑 本地的路徑

  實(shí)例:hdfs dfs -getmergo/hadoopdata/*.xml /root/test.test

  15. 移動(dòng)hdfs中的文件(更名)

  hdfs dfds [generic options] -mv...

  調(diào)用格式:hdfs dfs -mv/hdfs的路徑1 /hdfs的另一個(gè)路徑2

  實(shí)例:hfds dfs -mv/aaa /bbb 這里是將aaa整體移動(dòng)到bbb中

  16. 復(fù)制hdfs中的文件到hdfs的另一個(gè)目錄

  hdfs dfs [generic options] -cp[-f] [-p | -p[topax]]...

  調(diào)用格式:hdfs dfs -cp/hdfs路徑_1 /hdfs路徑_2

  17.設(shè)置Hadoop回收站trash: 當(dāng)我們不小心刪掉文件時(shí),還有后悔藥吃.

  17.1 修改conf/core-site.xml文件

  注意:我們需要在namenode和datanode同時(shí)設(shè)置垃圾回收,如果namenode可以使用,

  datanode 的無效,如果namenode的失效了,會(huì)自動(dòng)調(diào)用datanode的設(shè)置

<property>
<name>fs.trash.interval</name>
<!-- 1440分鐘后檢查點(diǎn)會(huì)被清除,如果為0,垃圾回收站不會(huì)啟用. -->
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>0</value>
</property>

  解釋:

  一:檢查點(diǎn):

  執(zhí)行下面的語句后出現(xiàn)的.Trash/190907043825就是檢查點(diǎn)

  [root@master sbin]# hadoop fs -ls /user/root/.Trash/

  19/09/07 05:15:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library foryour platform... using builtin-java classes where applicable

  Found 2items

  drwx------ -root supergroup 02019-09-0704:36 /user/root/.Trash/190907043825

  drwx------ -root supergroup 02019-09-0705:15 /user/root/.Trash/Current

  二:fs.trash.interval

  分鐘數(shù),當(dāng)超過這個(gè)分鐘數(shù)后檢查點(diǎn)會(huì)被刪除。如果為零,回收站功能將被禁用。默認(rèn)是0.單位分鐘。這里我設(shè)置的是1天(60*24)

  刪除數(shù)據(jù)rm后,會(huì)將數(shù)據(jù)move到當(dāng)前文件夾下的.Trash/current目錄

  三:fs.trash.checkpoint.interval

  檢查點(diǎn)創(chuàng)建的時(shí)間間隔(單位為分鐘)。其值應(yīng)該小于或等于fs.trash.interval。如果為零,則將該值設(shè)置為fs.trash.interval的值。

  四:刪除過程分析

  這里的Deletion interval表示檢查點(diǎn)刪除時(shí)間間隔(單位為分鐘)

  這里的Emptier interval表示在運(yùn)行線程來管理檢查點(diǎn)之前,NameNode需要等待多長時(shí)間(以分鐘為單位),即檢查點(diǎn)創(chuàng)建時(shí)間間隔.NameNode刪除超過fs.trash.interval的檢查點(diǎn),并為/user/${username}/.Trash/Current創(chuàng)建一個(gè)新的檢查點(diǎn)。該頻率由fs.trash.checkpoint.interval的值確定,且不得大于Deletion interval。這確保了在emptier窗口內(nèi)回收站中有一個(gè)或多個(gè)檢查點(diǎn)。

  [root@master sbin]# hadoop fs -rm -r /hadoop4.txt

  19/09/07 05:15:24 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval =1440minutes, Emptier interval =0minutes.

  Moved: 'hdfs://master:9000/hadoop4.txt'to trash at: hdfs://master:9000/user/root/.Trash/Current

  例如:

  fs.trash.interval =120(deletion interval =2hours)

  fs.trash.checkpoint.interval =60(emptier interval =1hour)

  說明:

  這導(dǎo)致NameNode為Current目錄下的垃圾文件每小時(shí)創(chuàng)建一個(gè)新的檢查點(diǎn),并刪除已經(jīng)存在超過2個(gè)小時(shí)的檢查點(diǎn)。

  在回收站生命周期結(jié)束后,NameNode從HDFS命名空間中刪除該文件。刪除文件會(huì)導(dǎo)致與文件關(guān)聯(lián)的塊被釋放。請注意,用戶刪除文件的時(shí)間與HDFS中相應(yīng)增加可用空間的時(shí)間之間可能存在明顯的時(shí)間延遲,即用戶刪除文件,HDFS可用空間不會(huì)立馬增加,中間有一定的延遲。

  五:expunge 清空回收站

  要想使用這個(gè)命令,首先得有回收站,即fs.trash.interval的值不能為0

  當(dāng)我們執(zhí)行expunge命令時(shí),其實(shí)是會(huì)立刻創(chuàng)建一個(gè)新的檢查點(diǎn),并將/.Trash/Current中的內(nèi)容立刻放入這個(gè)檢查點(diǎn).

  實(shí)例: [root@master sbin]# hadoop fs -expunge

  19/09/07 05:15:58 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval =1440minutes, Emptier interval =0minutes.

  19/09/07 05:15:58 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/root/.Trash/190907051558

  

  六:如果想繞過垃圾回收站并立即從文件系統(tǒng)中刪除文件。可以執(zhí)行 hadoop fs -rm-skipTrash

  [root@master sbin]# hadoop fs -rm -skipTrash /hadoop111.txt

  19/09/07 05:50:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library foryour platform... using builtin-java classes where applicable

  Deleted /hadoop111.txt

  17.2.測試

  1)新建目錄input

  [root@master:/data/soft]# hadoop fs -mkdir /input

  2)上傳文件

  [root@master:/data/soft]# hadoop fs -copyFromLocal /data/soft/file0* /input

  3)刪除目錄input

  [root@master data]# hadoop fs -rmr /input

  Moved to trash: hdfs://master:9000/user/root/input

  4)參看當(dāng)前目錄

  [root@master data]# hadoop fs -ls

  Found 2items

  drwxr-xr-x -root supergroup 02011-02-1222:17 /user/root/.Trash

  發(fā)現(xiàn)input刪除,多了一個(gè)目錄.Trash

  5)恢復(fù)剛剛刪除的目錄

  [root@master data]# hadoop fs -mv /user/root/.Trash/Current/user/root/input /user/root/input

  6)檢查恢復(fù)的數(shù)據(jù)

  [root@master data]# hadoop fs -ls input

  Found 2items

  -rw-r--r--3root supergroup 222011-02-1217:40 /user/root/input/file01

  -rw-r--r--3root supergroup 282011-02-1217:40 /user/root/input/file02

  7)刪除.Trash目錄(清理垃圾)

  [root@master data]# hadoop fs -rmr .Trash

  Deleted hdfs://master:9000/user/root/.Trash

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個(gè)集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15