1. 程式人生 > >hadoop的shell操作命令

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個數