Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)
其他相關命令還包括以下這些:
NameNode ?-format?: ?格式化DFS文件系統
secondaryNameNode?: ? 運行DFS的SecndaryNameNode進程
NameNode ?: ?運行DFS的NameNode進程
DataNode ?: ?運行DFS的DataNode進程
dfsadmin ?: ? 運行DFS的管理客戶端
mradmin ?: ? 運行MapReduce的管理客戶端
fsck ??: ? 運行HDFS的檢測進程
fs ??: ? 運行一個文件系統工具
balancer ? ?: ? 運行一個文件系統平衡進程
jobtracker ??: ?運行一個JobTracker進程
pipes ??: ? 運行一個Pipes任務
tasktracker? ?: ? 運行一個TaskTracker進程
job:管理運行中的MapReducer任務
queue ??: ? 獲得運行中的MapReduce隊列的信息
version??: ? 打印版本號
jar ?<jar>?:運行一個JAR文件
daemonlog:讀取/設置守護進程的日志記錄級別
?
?
?
相信大家已經對這些命令中的一部分很熟悉了。
比如在命令行終端中,jar是用來運行java程序的,version命令可以查看Hadoop的當前版本,或者在安裝時必須運行的NameNode ? -format命令。在這一小節,我們介紹的是與HDFS有關的命令,其中與HDFS相關的命令有如下幾個:secondaryNameNode、NameNode、DataNode、dfsadmin、fsck、fs、balancer、distcp和archieves。
它們的統一格式如下:
bin/hadoop command [genericOptions] [commandOptions]其中只有dfsadmin、fsck、fs具有選項genericOptions及commandOptions,其余的命令只有commandOptions。下面先介紹只有commandOptions選項的命令。
distcp。Distcp命令用于Distcp(即Dist分布式,Cp復制)分布式復制。用于在集群內部及集群之間復制數據。
archives。archives命令是Hadoop定義的檔案格式。archive對應一個文件系統,它的擴展名是.har。包含元數據及數據文件。
DataNode。DataNode命令要簡單一些,可以使用如下命令將Hadoop回滾到前一個版本。如下:
hadoop DataNode ? [-rollback]
NameNode。nameNode命令稍微復雜一些,它的用法如下:
hadoop nameNode[-format] //格式化NameNode[-upgrade] //在Hadoop升級后,應該使用這個命令啟動NameNode[-rollback] //使用NameNode回滾前一個版本[-finalize] //刪除文件系統的前一個狀態,這會導致系統不能回滾到前一個zhua[-importCheckpoint] // 復制備份checkpoint的狀態到當前checkpoint?
secondaryNameNode。secondaryNameNode的命令用法如下:
hadoop secondaryNameNode[-checkpoint [force]] //當editlog超過規定大小(默認64MB),啟動檢查secondaryNameNode的checkpoint過程;如果啟用force選項,則強制執行checkpoint過程。 [-geteditsize] //在終端上顯示editlog文件的大小?
balancer。balancer命令解釋中所說,用于分擔負載。很多原因都會造成數據在集群內分布不均衡,一般來說,當集群中添加新的DataNode時,可以使用這個命令來進行負載均衡。其用法如下:
hadoop balancer
接下來的dfsadmin、fsck、fs這三個命令有一個共同的選項genericOptions,這個選擇一般與系統相關,其用法如下:
-conf <configuration> //指定配置文件-D <property=value> //指定某屬性的屬性值-fs <local|namenode:port> //指定DataNode及其端口?
? ? ??dfsadmin。在dfsadmin命令中可以執行一些類似Windows中高級用戶才能執行的命令,比如升級、回滾等。其用法如下:
hadoop dfsadmin [GENERIC_OPTIONS][-report] //在終端上顯示文件系統的基本信息[-safemode enter | leave | get | wait] //Hadoop的安全模式及相關維護;在安全模式中系統是只讀的,數據塊也不可以刪除或復制[-refreshNodes] [-finalizeUpgrade] //重新讀取hosts和exclude文件,將新的被允許加入到集群中的DataNode連入,同時斷開與那些從集群出去的DataNode的連接。[-upgradeProgress status | details | force] //獲得當前系統的升級狀態、細節,或者強制執行升級過程[-metasave filename] //保存NameNode的主要數據結構到指定目錄下[-setQuota <qutoa> <dirname> ... <dirname>] //為每個目錄設定配額[-clrQuota <dirname> ... <dirname>] //清除這些目錄的配額[-setSpaceQuota <qutoa> <dirname> ... <dirname>]//為每個目錄設置配額空間[-clrSpaceQuota <dirname> ... <dirname>] //清除這些目錄的配額空間[-help [cmd]] // 顯示命令的幫助信息?
?fsck。fsck在HDFS中被用來檢查系統中的不一致情況。比如某文件只有目錄,但數據塊已經丟失或副本數目不足。與Linux不同,這個命令只用于檢測,不能進行修復。其使用方法如下:
?
fs。fs可以說是HDFS最常用的命令,這是一個高度類似Linux文件系統的命令集。你可以使用這些命令查看HDFS上的目錄結構文件、上傳和下載文件、創建文件夾、復制文件等。其使用方法如下:
hadoop fs [genericOptions] [-ls <path>] //顯示目標路徑當前目錄下的所有文件[-lsr <path>] //遞歸顯示目標路徑下的所有目錄及文件(深度優先)[-du <path>] //以字節為單位顯示目錄中所有文件的大小,或該文件的大小(如果目標為文件)[-dus <path>] //以字節為單位顯示目標文件大小(用于查看文件夾大小)[-count [-q] <path>] //將目錄的大小、包含文件(包括文件)個數的信息輸出到屏幕(標準stdout)[-mv <src> <dst>] //把文件或目錄移動到目標路徑,這個命令允許同時移動多個文件,如果復制多個文件,目標路徑必須是文件夾[-cp <src> <dst>] //復制文件或目錄到目標路徑,這個命令運行同時復制多個文件,如果復制多個文件,目標路徑必須是文件夾[-rm [-skipTrash] <path>] //刪除文件,這個命令不能刪除文件夾[-rmr [-skipTrash] <path>] //刪除文件夾及其下的所有文件[-expunge][-put <localsrc> ... <dst>] //從本地文件系統上傳文件到HDFS中[-copyFromLocal <localsrc> ... <dst>] //與put相同[-moveFromLocal <localsrc> ... <dst>] //與put相同,但是文件上傳之后會從本地文件系統中移除[-get [-ignoreCrc] [-crc] <src> <localdst>] //復制文件到本地文件系統。這個命令可以選擇是否忽視校驗和,忽視校驗和下載主要用于挽救那些已經發生錯誤的文件。[-getmerge <src> <localdst> [addn1]] //將源目錄中的所有文件進行排序并寫入目標文件中,文件之間以換行符分隔。[-cat <src>] //在終端顯示(標準輸出stdout) 文件中的內容,類似Linux系統中的Cat。[-text <src>] [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>] //與get相同[-moveToLocal [-crc] <src> <localdst>][-mkdir <path>]//創建文件夾[-setrep [-R] [-W] <rep> <path/file>] //改變一個文件的副本個數。參數-R可以遞歸地對該目錄下的所有文件做統一操作[-touchz <path>] //類似Linux中的touch ,創建一個空文件[-test -[ezd] <path>] //將源文件輸出為文本格式顯示到終端上,通過這個命令可以查看TextRecordInputStream(SequenceFile等)或Zip文件。[-stat [format] <path>] //以指定格式返回路徑的信息[-tail [-f] <file>] //在終端上顯示(標準輸出stdout)文件的最后1kb內容。-f選項的行為與Linux中一致,會持續檢測新添加到文件中的內容,這在查看日志文件時會顯得非常方便[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH ... ]//改變文件的權限,只有文件的所有者或是超級用戶才能使用這個命令。-R可以遞歸地改變文件夾內的所有文件的權限 [-chown [-R] [OWNER] [:[GROUP]] PATH ...] //改變文件的擁有者,-R可以遞歸地改變文件夾內所有文件的擁有者。同樣,這個命令只有超級用戶才能使用。 [-chgrp [-R] GROUP PATH ...] //改變文件所屬的組,-R可以遞歸地改變文件夾內所有文件所屬的 [help [cmd]] // 這是命令的幫助信息在這些命令中,參數<path>的完整格式是 hdfs://NameNodeIP:port/,比如你的NameNode地址是192.168.0.1,端口是9000。那么,如果想訪問HDFS上路徑為/user/root/hello的文件,則需要輸入的地址是hdfs://192.168.0.1:9000/user/root/hello。在Hadoop中,如果參數<path>沒有NameNodeIP,那么會默認按照core-site.xml中屬性fs.default.name的設置,附加"/user/你的用戶名"作為路徑,這是為了方便使用以及對不同用戶進行區分。
?
?
本文轉自大數據躺過的坑博客園博客,原文鏈接:http://www.cnblogs.com/zlslch/p/5143531.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos开机优化脚本
- 下一篇: asp.net 图片 上传 打水印 高质