Hadoop HDFS Usage
本篇將介紹昨天所提到HDFS相關指令的參數。如果想知道更多的說明,可以使用hadoop fs -help
指令查看更多。[]
內的參數可選擇性使用,並非一定要加入指令內。
複製檔案至HDFS
-
hadoop fs -put [-f] [-p] [-l] [-d] <localsrc> ... <dst>
此指令可以同時從本地文件系統複製多個檔案/資料夾到HDFS。 -
hadoop fs -copyFromLocal [-f] [-p] [-l] [-d] <localsrc> URI
參數說明: -p : 保留檔案的瀏覽、修改時間、擁有者和權限。 -f : 如果儲存的路徑已經存在相同檔名,就複寫該檔案。 -l : 強制將檔案的儲存副本(replication)變成1。表示該檔案在HDFS上只有一份replication,非必要請勿使 用,會失去HDFS的可靠(reliable)特點。 -d : 不建立副檔名為._COPYING_的暫時(temporary)文件。儲存檔案至HDFS過程中會先建立一個副檔名 為._COPYING_的暫存檔,當儲存完畢後再刪除,若使用這參數將會跳過這步驟。
查詢檔案清單
hadoop fs -ls [-C] [-d] [-h] [-R] [-t] [-S] [-r] [-u] [<path> ...]
參數說明: -C: 只顯示資料夾與檔案的路徑,略過其它資訊。 -d: 目錄被列為純文件,只顯示該路徑的資訊。 -h: 將檔案大小加上單位,便於閱讀(例如,2310會顯示2.3k)。 -R: 列出路徑內所有子目錄及檔案。 -t: 按照編輯時間排序(最近的排第一個)。 -S: 按檔案大小排序。 -r: 顛倒排列順序。(例如,搭配-t使用就會將距離最遠的時間排第一個) -u: 使用訪問時間顯示和排序(預設是使用編輯時間)。
顯示檔案內容
hadoop fs -cat [-ignoreCrc] URI [URI ...]
參數說明: -ignoreCrc: 略過CRC驗證。
建立資料夾
hadoop fs -mkdir [-p] <paths>
參數說明: -p: 類似Unix上 mkdir -p的用法,會將<paths>所有的路徑資料夾全部新增出來。
移動檔案/資料夾與重新命名
hadoop fs -mv URI [URI ...] <dest>
此指令可以搬移多個檔案/資料夾,而必須是一個資料夾。此指令無法跨檔案系統搬移(例如:只能HDFS搬移到HDFS,無法由HDFS搬移到local host)
複製檔案/資料夾
hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
參數說明: -f: 如果<dest>已經存在,則強制複寫該檔案/資料夾。 -p: 保留文件屬性(擁有者、修改時間、權限等)。若使用-p而不帶參數,則會保留時間、擁有者與權限。如果使用-pa則保留權限。
複製檔案/資料夾回本機電腦
hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
參數說明: -p: 保留檔案的瀏覽和修改時間,擁有者和權限。 (假設權限可以跨越檔案系統複製) -f: 如果儲存的路徑已經存在相同檔名,就複寫該檔案。 -ignorecrc: 略過CRC驗證。 -crc: 在檔案下載時寫入CRC認證。
刪除HDFS上的檔案/資料夾
- hadoop fs -rmr [-skipTrash] URI [URI …]
刪除路徑中所有的檔案與資料夾,可同時刪除多個檔案或資料夾。參數說明: -skipTrash: 不把檔案入放入垃圾桶而直接刪除。當檔案系統的容量快 不足時,這功能將會非常實用。 備註:rmr這個指令已經被標示為deprecated,表示在之後的版本可能會完全 被移除。可以考慮使用hadoop fs -rm -r來代替這個指令。