hdfs常用命令:
第一部分:hdfs文件系統命令
第一類:文件路徑增刪改查系列:
hdfs dfs -mkdir dir 創建文件夾
hdfs dfs -rmr dir 刪除文件夾dir
hdfs dfs -ls 查看目錄文件信息
hdfs dfs -lsr 遞歸查看文件目錄信息
hdfs dfs -stat path 返回指定路徑的信息
第二類:空間大小查看系列命令:
hdfs dfs -du -h dir 按照適合閱讀的形式人性化顯示文件大小
hdfs dfs -dus uri 遞歸顯示目標文件的大小
hdfs dfs -du path/file顯示目標文件file的大小
第三類:權限管理類:
hdfs dfs -chgrp group path 改變文件所屬組
hdfs dfs -chgrp -R /dir 遞歸更改dir目錄的所屬組
hdfs dfs -chmod [-R] 權限 -path 改變文件的權限
hdfs dfs -chown owner[-group] /dir 改變文件的所有者
hdfs dfs -chown -R owner[-group] /dir 遞歸更改dir目錄的所屬用戶
第四類:文件操作(上傳下載複製)系列:
hdfs dfs -touchz a.txt 創建長度爲0的空文件a.txt
hdfs dfs -rm file 刪除文件file
hdfs dfs -put file dir 向dir文件上傳file文件
hdfs dfs -put filea dir/fileb 向dir上傳文件filea並且把filea改名爲fileb
hdfs dfs -get file dir 下載file到本地文件夾
hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult 把hdfs裏面的多個文件合併成一個文件,合併後文件位於本地系統
hdfs dfs -cat file 查看文件file
hdfs fs -text /dir/a.txt 如果文件是文本格式,相當於cat,如果文件是壓縮格式,則會先解壓,再查看
hdfs fs -tail /dir/a.txt查看dir目錄下面a.txt文件的最後1000字節
hdfs dfs -copyFromLocal localsrc path 從本地複製文件
hdfs dfs -copyToLocal /hdfs/a.txt /local/a.txt 從hdfs拷貝到本地
hdfs dfs -copyFromLocal /dir/source /dir/target 把文件從原路徑拷貝到目標路徑
hdfs dfs -mv /path/a.txt /path/b.txt 把文件從a目錄移動到b目錄,可用於回收站恢復文件
第五類:判斷系列:
hdfs fs -test -e /dir/a.txt 判斷文件是否存在,正0負1
hdfs fs -test -d /dir 判斷dir是否爲目錄,正0負1
hdfs fs -test -z /dir/a.txt 判斷文件是否爲空,正0負1
第六類:系統功能管理類:
hdfs dfs -expunge 清空回收站
hdfs dfsadmin -safemode enter 進入安全模式
hdfs dfsadmin -sfaemode leave 離開安全模式
hdfs dfsadmin -decommission datanodename 關閉某個datanode節點
hdfs dfsadmin -finalizeUpgrade 終結升級操作
hdfs dfsadmin -upgradeProcess status 查看升級操作狀態
hdfs version 查看hdfs版本
hdfs daemonlog -getlevel <host:port> <name> 打印運行在<host:port>的守護進程的日誌級別
hdfs daemonlog -setlevel <host:port> <name> <level> 設置運行在<host:port>的守護進程的日誌級別
hdfs dfs -setrep -w 副本數 -R path 設置文件的副本數
第二部分:運維命令
start-dfs.sh 啓動namenode,datanode,啓動文件系統
stop-dfs.sh 關閉文件系統
start-yarn.sh 啓動resourcemanager,nodemanager
stop-yarn.sh 關閉resourcemanager,nodemanager
start-all.sh 啓動hdfs,yarn
stop-all.sh 關閉hdfs,yarn
hdfs-daemon.sh start datanode 單獨啓動datanode
start-balancer.sh -t 10% 啓動負載均衡,儘量不要在namenode節點使用
hdfs namenode -format 格式化文件系統
hdfs namenode -upgrade 分發新的hdfs版本之後,namenode應以upgrade選項啓動
hdfs namenode -rollback 將namenode回滾到前一版本,這個選項要在停止集羣,分發老的hdfs版本之後執行
hdfs namenode -finalize finalize會刪除文件系統的前一狀態。最近的升級會被持久化,rollback選項將再不可用,升級終結操作之後,它會停掉namenode,分發老的hdfs版本後使用
hdfs namenode importCheckpoint 從檢查點目錄裝載鏡像並保存到當前檢查點目錄,檢查點目錄由fs.checkpoint.dir指定
第三部分:mapreduce命令
hdfs jar file.jar 執行jar包程序
hdfs job -kill job_201005310937_0053 殺死正在執行的jar包程序
hdfs job -submit <job-file> 提交作業
hdfs job -status <job-id> 打印map和reduce完成百分比和所有計數器。
hdfs job -counter <job-id> <group-name> <counter-name> 打印計數器的值。
hdfs job -kill <job-id> 殺死指定作業。
hdfs job -events <job-id> <from-event-#> <#-of-events> 打印給定範圍內jobtracker接收到的事件細節。
hdfs job -history [all] <jobOutputDir>
hdfs job -history <jobOutputDir> 打印作業的細節、失敗及被殺死原因的細節。更多的關於一個作業的細節比如成功的任務,做過的任務嘗試等信息可以通過指定[all]選項查看。
hdfs job -list [all] 顯示所有作業。-list只顯示將要完成的作業。
hdfs job -kill -task <task-id> 殺死任務。被殺死的任務不會不利於失敗嘗試。
hdfs job -fail -task <task-id> 使任務失敗。被失敗的任務會對失敗嘗試不利。
第四部分:hdfs系統檢查工具fsck
hdfs fsck <path> -move 移動受損文件到/lost+found
hdfs fsck <path> -delete 刪除受損文件。
hdfs fsck <path> -openforwrite 打印出寫打開的文件。
hdfs fsck <path> -files 打印出正被檢查的文件。
hdfs fsck <path> -blocks 打印出塊信息報告。
hdfs fsck <path> -locations 打印出每個塊的位置信息。
hdfs fsck <path> -racks 打印出data-node的網絡拓撲結構。
第五部分:運行pipies作業
hdfs pipes -conf <path> 作業的配置
hdfs pipes -jobconf <key=value>, <key=value>, ... 增加/覆蓋作業的配置項
hdfs pipes -input <path> 輸入目錄
hdfs pipes -output <path> 輸出目錄
hdfs pipes -jar <jar file> Jar文件名
hdfs pipes -inputformat <class> InputFormat類
hdfs pipes -map <class> Java Map類
hdfs pipes -partitioner <class> Java Partitioner
hdfs pipes -reduce <class> Java Reduce類
hdfs pipes -writer <class> Java RecordWriter
hdfs pipes -program <executable> 可執行程序的URI
hdfs pipes -reduces <num> reduce個數