hadoop的shell操作命令
1、hadoop fs -setrep 3 /
修改 (/ 根目錄下)原來所有檔案的副本為3 對以後上傳的檔案沒有影響 ,不會設定成副本為3;
2、hadoop fs -get 檔名 下載路徑
下載檔案
3、hadoop fs -put 檔名 上傳路徑
上傳檔案
4、hdfs getconf -confkey fs.defaultFS
檢視hdfs主節點
5、hdfs getconf -confkey dfs.blocksize
檢視設定分塊大小
6、hdfs getconf -confkey dfs.replication
檢視設定副本數
7、常用shell命令
選項名稱 | 使用格式 | 含義 |
-ls | -ls <路徑> | 檢視指定路徑的當前目錄結構 |
-lsr | -lsr <路徑> | 遞迴檢視指定路徑的目錄結構 |
-du | -du <路徑> | 統計目錄下個檔案大小 |
-dus | -dus <路徑> | 彙總統計目錄下檔案(夾)大小 |
-count | -count [-q] <路徑> | 統計檔案(夾)數量 |
-mv | -mv <源路徑> <目的路徑> | 移動 |
-cp | -cp <源路徑> <目的路徑> | 複製 |
-rm | -rm [-skipTrash] <路徑> | 刪除檔案/空白資料夾 |
-rmr | -rmr [-skipTrash] <路徑> | 遞迴刪除 |
-put | -put <多個linux上的檔案> <hdfs路徑> | 上傳檔案 |
-copyFromLocal | -copyFromLocal <多個linux上的檔案> <hdfs路徑> | 從本地複製 |
-moveFromLocal | -moveFromLocal <多個linux上的檔案> <hdfs路徑> | 從本地移動 |
-getmerge | -getmerge <源路徑> <linux路徑> | 合併到本地 |
-cat | -cat <hdfs路徑> | 檢視檔案內容 |
-text | -text <hdfs路徑> | 檢視檔案內容 |
-copyToLocal | -copyToLocal [-ignoreCrc] [-crc] [hdfs源路徑] [linux目的路徑] | 從本地複製 |
-moveToLocal | -moveToLocal [-crc] <hdfs源路徑> <linux目的路徑> | 從本地移動 |
-mkdir | -mkdir <hdfs路徑> | 建立空白資料夾 |
-setrep | -setrep [-R] [-w] <副本數> <路徑> | 修改副本數量 |
-touchz | -touchz <檔案路徑> | 建立空白檔案 |
-stat | -stat [format] <路徑> | 顯示檔案統計資訊 |
-tail | -tail [-f] <檔案> | 檢視檔案尾部資訊 |
-chmod | -chmod [-R] <許可權模式> [路徑] | 修改許可權 |
-chown | -chown [-R] [屬主][:[屬組]] 路徑 | 修改屬主 |
-chgrp | -chgrp [-R] 屬組名稱 路徑 | 修改屬組 |
-help | -help [命令選項] | 幫助 |
hdfs命令大全
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個數