根據官方文檔的提示我們能夠知道可以通過shell的方式通路hdfs中的資料,對資料進行操作。那麼首先讓我們看一下hdfs的版本,使用指令hdfs version。

- -mkdir
建立目錄
Usage:hdfs dfs -mkdir [-p] < paths>
選項:-p
很像Unix mkdir -p,沿路徑建立父目錄。
- -ls
檢視目錄下内容,包括檔案名,權限,所有者,大小和修改時間
Usage:hdfs dfs -ls [-R] < args>
選項:-R:遞歸地顯示子目錄下的内容
- -put
将本地檔案或目錄上傳到HDFS中的路徑
Usage:hdfs dfs -put < localsrc> … < dst>
- -get
将檔案或目錄從HDFS中的路徑拷貝到本地檔案路徑
Usage:hdfs dfs -get [-ignoreCrc] [-crc] < src> < localdst>
選項:
-ignorecrc選項複制CRC校驗失敗的檔案。
-crc選項複制檔案和CRC。
- -du
顯示給定目錄中包含的檔案和目錄的大小或檔案的長度,用位元組大小表示,檔案名用完整的HDFS協定字首表示,以防它隻是一個檔案。
Usage:hdfs dfs -du [-s] [-h] URI [URI …]
選項:
-s選項将顯示檔案長度的彙總摘要,而不是單個檔案。
-h選項将以“人類可讀”的方式格式化檔案大小(例如64.0m而不是67108864)
- -dus
顯示檔案長度的摘要。
Usage:hdfs dfs -dus < args>
注意:不推薦使用此指令。而是使用hdfs dfs -du -s。
- -mv
在HDFS檔案系統中,将檔案或目錄從HDFS的源路徑移動到目标路徑。不允許跨檔案系統移動檔案。
Usage: hdfs dfs -mv URI [URI …] < dest>
- -cp
在HDFS檔案系統中,将檔案或目錄複制到目标路徑下
Usage:hdfs dfs -cp [-f] [-p | -p [topax] ] URI [ URI …] < dest>
選項:
-f選項覆寫已經存在的目标。
-p選項将保留檔案屬性[topx](時間戳,所有權,權限,ACL,XAttr)。如果指定了-p且沒有arg,則保留時間戳,所有權和權限。如果指定了-pa,則還保留權限,因為ACL是一組超級權限。确定是否保留原始命名空間擴充屬性與-p标志無關。
- -copyFromLocal
從本地複制檔案到hdfs檔案系統(與-put指令相似)
Usage: hdfs dfs -copyFromLocal < localsrc> URI
選項:
如果目标已存在,則-f選項将覆寫目标。
- -copyToLocal
複制hdfs檔案系統中的檔案到本地 (與-get指令相似)
Usage: hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI < localdst>
- -rm
删除一個檔案或目錄
Usage:hdfs dfs -rm [-f] [-r|-R] [-skipTrash] URI [URI …]
選項:
如果檔案不存在,-f選項将不顯示診斷消息或修改退出狀态以反映錯誤。
-R選項以遞歸方式删除目錄及其下的任何内容。
-r選項等效于-R。
-skipTrash選項将繞過垃圾桶(如果已啟用),并立即删除指定的檔案。當需要從超配額目錄中删除檔案時,這非常有用。
- -cat
顯示檔案内容到标準輸出上。
Usage:hdfs dfs -cat URI [URI …]
- -text
Usage: hdfs dfs -text
擷取源檔案并以文本格式輸出檔案。允許的格式為zip和TextRecordInputStream。
- -touchz
建立一個零長度的檔案。
Usage:hdfs dfs -touchz URI [URI …]
- -stat
顯示檔案所占塊數(%b),檔案名(%n),塊大小(%n),複制數(%r),修改時間(%y%Y)。
Usage:hdfs dfs -stat URI [URI …]
- -tail
顯示檔案的最後1kb内容到标準輸出
Usage:hdfs dfs -tail [-f] URI
選項:
-f選項将在檔案增長時輸出附加資料,如在Unix中一樣。
- -count
統計與指定檔案模式比對的路徑下的目錄,檔案和位元組數
Usage: hdfs dfs -count [-q] [-h] < paths>
- -getmerge
将源目錄和目标檔案作為輸入,并将src中的檔案連接配接到目标本地檔案(把兩個檔案的内容合并起來)
Usage:hdfs dfs -getmerge < src> < localdst> [addnl]
注:合并後的檔案位于目前目錄,不在hdfs中,是本地檔案
- -grep
從hdfs上過濾包含某個字元的行内容
Usage:hdfs dfs -cat < srcpath> | grep 過濾字段
參考文獻: Hadoop----hdfs dfs常用指令的使用