本篇主要對hadoop命令和hdfs命令進行闡述,yarn命令會在以後的文章中體現html
hadoop fs命令能夠用於其餘文件系統,不止是hdfs文件系統內,也就是說該命令的使用範圍更廣能夠用於HDFS、Local FS等不一樣的文件系統。而hdfs dfs命令只用於HDFS文件系統;node
1、hadoop命令linux
使用語法:hadoop [--config confdir] COMMAND #其中config用來覆蓋默認的配置sql
##command #子命令 fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the credential interact with credential providers Hadoop jar and the required libraries daemonlog get/set the log level for each daemon s3guard manage data on S3 trace view and modify Hadoop tracing settings
一、archive shell
建立一個hadoop壓縮文件,詳細的能夠參考 http://hadoop.apache.org/docs/r2.7.0/hadoop-archives/HadoopArchives.htmlexpress
使用格式:hadoop archive -archiveName NAME -p <parent path> <src>* <dest> #-p 能夠同時指定多個路徑apache
實例:bootstrap
[hive@mwpl003 ~]$ hadoop fs -touchz /tmp/test/a.txt [hive@mwpl003 ~]$ hadoop fs -ls /tmp/test/ Found 1 items -rw-r--r-- 3 hive supergroup 0 2019-09-18 13:50 /tmp/test/a.txt [hive@mwpl003 ~]$ hadoop archive -archiveName test.har -p /tmp/test/a.txt -r 3 /tmp/test 19/09/18 13:52:58 INFO mapreduce.JobSubmitter: number of splits:1 19/09/18 13:52:58 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1565571819971_6988 19/09/18 13:52:58 INFO impl.YarnClientImpl: Submitted application application_1565571819971_6988 19/09/18 13:52:58 INFO mapreduce.Job: The url to track the job: http://ip_address:8088/proxy/application_1565571819971_6988/ 19/09/18 13:52:58 INFO mapreduce.Job: Running job: job_1565571819971_6988 19/09/18 13:53:04 INFO mapreduce.Job: Job job_1565571819971_6988 running in uber mode : false 19/09/18 13:53:04 INFO mapreduce.Job: map 0% reduce 0% 19/09/18 13:53:08 INFO mapreduce.Job: map 100% reduce 0% 19/09/18 13:53:13 INFO mapreduce.Job: map 100% reduce 100% 19/09/18 13:53:13 INFO mapreduce.Job: Job job_1565571819971_6988 completed successfully 19/09/18 13:53:13 INFO mapreduce.Job: Counters: 49 File System Counters FILE: Number of bytes read=80 FILE: Number of bytes written=313823 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of bytes read=264 HDFS: Number of bytes written=69 HDFS: Number of read operations=14 HDFS: Number of large read operations=0 HDFS: Number of write operations=8 Job Counters Launched map tasks=1 Launched reduce tasks=1 Other local map tasks=1 Total time spent by all maps in occupied slots (ms)=7977 Total time spent by all reduces in occupied slots (ms)=12015 Total time spent by all map tasks (ms)=2659 Total time spent by all reduce tasks (ms)=2403 Total vcore-milliseconds taken by all map tasks=2659 Total vcore-milliseconds taken by all reduce tasks=2403 Total megabyte-milliseconds taken by all map tasks=8168448 Total megabyte-milliseconds taken by all reduce tasks=12303360 Map-Reduce Framework Map input records=1 Map output records=1 Map output bytes=59 Map output materialized bytes=76 Input split bytes=97 Combine input records=0 Combine output records=0 Reduce input groups=1 Reduce shuffle bytes=76 Reduce input records=1 Reduce output records=0 Spilled Records=2 Shuffled Maps =1 Failed Shuffles=0 Merged Map outputs=1 GC time elapsed (ms)=91 CPU time spent (ms)=2320 Physical memory (bytes) snapshot=1189855232 Virtual memory (bytes) snapshot=11135381504 Total committed heap usage (bytes)=3043491840 Shuffle Errors BAD_ID=0 CONNECTION=0 IO_ERROR=0 WRONG_LENGTH=0 WRONG_MAP=0 WRONG_REDUCE=0 File Input Format Counters Bytes Read=167 File Output Format Counters Bytes Written=0 [hive@mwpl003 ~]$ hadoop fs -ls /tmp/test/ Found 2 items -rw-r--r-- 3 hive supergroup 0 2019-09-18 13:50 /tmp/test/a.txt drwxr-xr-x - hive supergroup 0 2019-09-18 13:53 /tmp/test/test.har [hive@mwpl003 ~]$ hadoop fs -ls /tmp/test/test.har/ Found 4 items -rw-r--r-- 3 hive supergroup 0 2019-09-18 13:53 /tmp/test/test.har/_SUCCESS -rw-r--r-- 3 hive supergroup 55 2019-09-18 13:53 /tmp/test/test.har/_index -rw-r--r-- 3 hive supergroup 14 2019-09-18 13:53 /tmp/test/test.har/_masterindex -rw-r--r-- 3 hive supergroup 0 2019-09-18 13:53 /tmp/test/test.har/part-0 解壓: hadoop distcp har:///tmp/test/test.har /tmp/test1 hdfs dfs -cp har:///tmp/test/test.har /tmp/test1
二、checknative安全
檢查hadoop的原生代碼,通常人用不到網絡
使用語法:hadoop checknative [-a] [-h]
-a 檢查全部的庫
-h 顯示幫助
三、classpath
打印hadoop jar或者庫的類路徑
使用語法:hadoop classpath [--glob |--jar <path> |-h |--help]
四、credential
管理憑證供應商的憑證、密碼和secret(有關祕密信息)
使用語法:hadoop credential <subcommand> [options]
五、distcp(比較經常使用)
distributed copy的縮寫(望文生義),主要用於集羣內/集羣之間 複製文件。須要使用到mapreduce
使用語法:hadoop distcp [-option] hdfs://source hdfs://dest
詳細見:http://hadoop.apache.org/docs/r2.7.0/hadoop-distcp/DistCp.html
經常使用的幾個選項: -m <num_maps> #指定了拷貝數據時map的數目。請注意並非map數越多吞吐量越大 -i #忽略失敗 -log <logdir> #記錄日誌到 <logdir> -update #當目標集羣上的文件不存在或文件不一致時,纔會從源集羣拷貝 -overwrite #覆蓋目標集羣上的文件 -filter #過濾不須要複製的文件 -delete #刪除目標文件存在,但不存在source中的文件
六、fs
與hdfs dfs同用
查看幫助:hadoop fs -help
詳細查看:http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/FileSystemShell.html
包括以下一些子命令:
appendToFile, cat, checksum, chgrp, chmod, chown, copyFromLocal, copyToLocal, count, cp, createSnapshot, deleteSnapshot, df, du, expunge, find, get, getfacl, getfattr, getmerge, help, ls, mkdir, moveFromLocal, moveToLocal, mv, put, renameSnapshot, rm, rmdir, setfacl, setfattr, setrep, stat, tail, test, text, touchz
在這裏我想各位都應該比較熟悉linux的基本操做命令了,因此這些命令用起來比較簡單
6.一、appendToFile
appendToFile #追加一下本地文件到分佈式文件系統 Usage: hadoop fs -appendToFile <localsrc> ... <dst> example: hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile hadoop fs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile #表示從標準輸入輸入數據到hadoopfile中,ctrl+d 結束輸入
6.二、cat
cat #查看文件內容 Usage: hadoop fs -cat URI [URI ...] example: hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2 hadoop fs -cat file:///file3 /user/hadoop/file4
6.三、checksum
checksum #返回被檢查文件的格式 Usage: hadoop fs -checksum URI example: [hive@mwpl003 ~]$ hadoop fs -checksum /tmp/test/test.txt /tmp/test/test.txt MD5-of-0MD5-of-512CRC32C 000002000000000000000000fde199c1517b7b26b0565ff6b0f46acc
6.四、chgrp
chgrp #變動文件目錄的所屬組
Usage: hadoop fs -chgrp [-R] GROUP URI [URI ...]
6.五、chmod
chmod #修改文件或者目錄的權限
Usage: hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
6.六、chown
chown #修改目錄或者文件的擁有者和所屬組
Usage: hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
6.七、copyFromLocal
copyFromLocal #從本地複製文件或者文件夾到hdfs,相似put命令 Usage: hadoop fs -copyFromLocal [-f] <localsrc> URI #其中-f選項會覆蓋與原文件同樣的目標路徑文件 example: hadoop fs -copyFromLocal start-hadoop.sh /tmp
6.八、copyToLocal
copyToLocal #相似get命令,從hdfs獲取文件到本地
Usage: hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
6.九、count
count #計算 目錄,文件,字節數
Usage: hadoop fs -count [-q] [-h] [-v] <paths>
6.十、cp
cp #複製源文件到目標文件 Usage: hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest> Example: hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
6.十一、Snapshot相關
createSnapshot #建立快照 deleteSnapshot #刪除快照 詳細見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html HDFS快照是文件系統的只讀時間點副本。能夠在文件系統的子樹或整個文件系統上拍攝快照。快照的一些常見用例是數據備份,防止用戶錯誤和災難恢復。 在建立快照前,要設置一個目錄爲snapshottable(須要管理員權限),表示能夠在該目錄中建立快照 hdfs dfsadmin -allowSnapshot <path> #在path中啓用快照 hdfs dfsadmin -disallowSnapshot <path> #在path中禁止快照 hdfs dfs -ls /foo/.snapshot #列出快照目錄下的全部快照 hdfs dfs -createSnapshot <path> [<snapshotName>] #建立快照,快照名默認爲時間戳格式 hdfs dfs -deleteSnapshot <path> <snapshotName> #刪除快照 hdfs dfs -renameSnapshot <path> <oldName> <newName> #快照重命名 hdfs lsSnapshottableDir #獲取快照目錄
6.十二、df
df #展現空間使用狀況
Usage: hadoop fs -df [-h] URI [URI ...]
6.1三、du
du #展現目錄包含的文件的大小 Usage: hadoop fs -du [-s] [-h] URI [URI ...] Example: hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1
6.1四、expunge
expunge #清空回收站(不要瞎用)
Usage: hadoop fs -expunge
6.1五、find
find #查找 Usage: hadoop fs -find <path> ... <expression> ... -name pattern -iname pattern #忽略大小寫 -print -print0Always Example: hadoop fs -find / -name test -print
6.1六、get
get #獲取數據,相似於copyToLocal.但有crc校驗 Usage: hadoop fs -get [-ignorecrc] [-crc] <src> <localdst> Example: hadoop fs -get /tmp/input/hadoop/*.xml /home/hadoop/testdir/
6.1七、getfacl
getfacl #展現目錄或者文件的ACL權限 Usage: hadoop fs -getfacl [-R] <path> [hive@mwpl003 ~]$ hadoop fs -getfacl -R /tmp/test # file: /tmp/test # owner: hive # group: supergroup getfacl: The ACL operation has been rejected. Support for ACLs has been disabled by setting dfs.namenode.acls.enabled to false.
6.1八、getfattr
getfattr #顯示文件或目錄的擴展屬性名稱和值 Usage: hadoop fs -getfattr [-R] -n name | -d [-e en] <path> -n name和 -d是互斥的, -d表示獲取全部屬性。 -R表示循環獲取; -e en 表示對獲取的內容編碼,en的能夠取值是 「text」, 「hex」, and 「base64」. Examples: hadoop fs -getfattr -d /file hadoop fs -getfattr -R -n user.myAttr /dir
6.1九、getmerge
getmerge #合併文件 Usage: hadoop fs -getmerge <src> <localdst> [addnl] hadoop fs -getmerge /src /opt/output.txt hadoop fs -getmerge /src/file1.txt /src/file2.txt /output.txt
6.20、ls
ls #羅列文件
Usage: hadoop fs -ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>
6.2一、mkdir
mkdir #建立文件夾 Usage: hadoop fs -mkdir [-p] <paths> Example: hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2 hadoop fs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir
6.2二、moveFromLocal
moveFromLocal #把本地文件移動到hdfs上
Usage: hadoop fs -moveFromLocal <localsrc> <dst>
6.2三、moveToLocal
moveToLocal #把hdfs文件移動到本地上
Usage: hadoop fs -moveToLocal [-crc] <src> <dst>
6.2四、mv
mv #移動文件,可是能夠一次移動多個 Usage: hadoop fs -mv URI [URI ...] <dest> Example: hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2 hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1
6.2五、put
put #把文件複製到hdfs上 Usage: hadoop fs -put <localsrc> ... <dst> hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile #Reads the input from stdin.
6.2六、rm
rm #刪除文件
Usage: hadoop fs -rm [-f] [-r |-R] [-skipTrash] URI [URI ...]
6.2七、rmdir
rmdir #刪除一個目錄
Usage: hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]
6.2八、setfacl
setfacl #設置ACL權限 Usage: hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>] -b 刪除除基本acl項以外的全部項。保留用戶、組和其餘用戶 -k 刪除全部的默認ACL權限 -R 遞歸操做 -m 修改ACL權限,保留舊的,添加新的 -x 刪除指定ACL權限 --set 徹底替換現有的ACL權限 Examples: hadoop fs -setfacl -m user:hadoop:rw- /file hadoop fs -setfacl -x user:hadoop /file hadoop fs -setfacl -b /file hadoop fs -setfacl -k /dir hadoop fs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file hadoop fs -setfacl -R -m user:hadoop:r-x /dir hadoop fs -setfacl -m default:user:hadoop:r-x /dir
6.2九、setfattr
setfattr #設置額外的屬性 Usage: hadoop fs -setfattr -n name [-v value] | -x name <path> -b 刪除除基本acl項以外的全部項。保留用戶、組和其餘用戶 -n 額外屬性名 -v 額外屬性值 -x name 刪除額外屬性 Examples: hadoop fs -setfattr -n user.myAttr -v myValue /file hadoop fs -setfattr -n user.noValue /file hadoop fs -setfattr -x user.myAttr /file
6.30、setrep
setrep #改變文件的複製因子(複本) Usage: hadoop fs -setrep [-R] [-w] <numReplicas> <path> Example: hadoop fs -setrep -w 3 /user/hadoop/dir1
6.3一、stat
stat #獲取文件的時間 Usage: hadoop fs -stat [format] <path> ... Example: hadoop fs -stat "%F %u:%g %b %y %n" /file
6.3二、tail
tail #展現文件到標準輸出
Usage: hadoop fs -tail [-f] URI
6.3三、test
test #測試 Usage: hadoop fs -test -[defsz] URI -d 判斷是不是目錄 -e 判斷是否存在 -f 判斷是不是文件 -s 判斷目錄是否爲空 -z 判斷文件是否爲空 Example: hadoop fs -test -e filename
6.3四、text
text #能夠用來看壓縮文件
Usage: hadoop fs -text <src>
6.3五、touchz
touchz #建立一個空文件
Usage: hadoop fs -touchz URI [URI ...]
七、jar
jar #運行一個jar文件 Usage: hadoop jar <jar> [mainClass] args... Example: hadoop jar ./test/wordcount/wordcount.jar org.codetree.hadoop.v1.WordCount /test/chqz/input /test/chqz/output的各段的含義: (1) hadoop:${HADOOP_HOME}/bin下的shell腳本名。 (2) jar:hadoop腳本須要的command參數。 (3) ./test/wordcount/wordcount.jar:要執行的jar包在本地文件系統中的完整路徑,參遞給RunJar類。 (4) org.codetree.hadoop.v1.WordCount:main方法所在的類,參遞給RunJar類。 (5) /test/chqz/input:傳遞給WordCount類,做爲DFS文件系統的路徑,指示輸入數據來源。 (6) /test/chqz/output:傳遞給WordCount類,做爲DFS文件系統的路徑,指示輸出數據路徑。 hadoop推薦使用yarn jar替代hadoop jar 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-yarn/hadoop-yarn-site/YarnCommands.html#jar
八、key
key #用來管理祕鑰,基本不用
九、trace
trace #查看和修改跟蹤設置 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/Tracing.html
2、hdfs命令
hdfs命令有以下選項:
User Commands: classpath, dfs, fetchdt, fsck, getconf, groups, lsSnapshottableDir, jmxget, oev, oiv, oiv_legacy, snapshotDiff, version,
Administration Commands: balancer, cacheadmin, crypto, datanode, dfsadmin, haadmin, journalnode, mover, namenode, nfs3, portmap, secondarynamenode, storagepolicies, zkfc
Debug Commands: verifyMeta, computeMeta, recoverLease
這裏不全詳解,詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
一、classpath
classpath #獲取jar包或者庫的有關類路徑
Usage: hdfs classpath [--glob |--jar <path> |-h |--help]
二、dfs
dfs #同上節hadoop fs 命令
三、fetchdt
fetchdt #從namenode節點獲取代理令牌 Usage: hdfs fetchdt <opts> <token_file_path> 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#fetchdt
四、fsck(重要)
hdfs fsck <path> [-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks | -replicaDetails]]] [-includeSnapshots] [-storagepolicies] [-blockId <blk_Id>] -delete 刪除損壞的文件 -files 打印正在檢查的文件. -files -blocks 打印塊報告 -files -blocks -locations Print out locations for every block. -files -blocks -racks 打印每一個塊的位置 -files -blocks -replicaDetails 打印出每一個副本的詳細信息. -includeSnapshots 若是給定路徑指示SnapshotTable目錄或其下有SnapshotTable目錄,則包括快照數據 -list-corruptfileblocks 打印出所屬丟失塊和文件的列表. -move 將損壞的文件移動到/lost+found. -openforwrite 打印爲寫入而打開的文件. -storagepolicies 打印塊的存儲策略摘要. -blockId 打印出有關塊的信息.
五、getconf(重要)
hdfs getconf -namenodes #獲取namenode節點 hdfs getconf -secondaryNameNodes #獲取secondaryNameNodes節點 hdfs getconf -backupNodes #獲取羣集中備份節點的列表 hdfs getconf -includeFile #獲取定義能夠加入羣集的數據節點的包含文件路徑 hdfs getconf -excludeFile #獲取定義須要停用的數據節點的排除文件路徑 hdfs getconf -nnRpcAddresses #獲取namenode rpc地址 hdfs getconf -confKey [key] #從配置中獲取特定密鑰 ,能夠用來返回hadoop的配置信息的具體值
六、groups
groups #返回用戶的所屬組
Usage: hdfs groups [username ...]
七、lsSnapshottableDir
lsSnapshottableDir #查看快照目錄
Usage: hdfs lsSnapshottableDir [-help]
八、jmxget
jmxget #從特定服務獲取jmx信息
Usage: hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service]
九、oev
oev #離線編輯查看器
Usage: hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE
十、oiv
oiv #離線映像編輯查看器
Usage: hdfs oiv [OPTIONS] -i INPUT_FILE
十一、snapshotDiff
snapshotDiff #對比快照信息的不一樣 Usage: hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot> 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html#Get_Snapshots_Difference_Report
十二、balancer(重要)
balancer hdfs balancer [-threshold <threshold>] [-policy <policy>] [-exclude [-f <hosts-file> | <comma-separated list of hosts>]] [-include [-f <hosts-file> | <comma-separated list of hosts>]] [-source [-f <hosts-file> | <comma-separated list of hosts>]] [-blockpools <comma-separated list of blockpool ids>] [-idleiterations <idleiterations>] -policy <policy> datanode (default): 若是每一個數據節點都是平衡的,則羣集是平衡的. blockpool: 若是每一個數據節點中的每一個塊池都是平衡的,則羣集是平衡的. -threshold <threshold> 磁盤容量的百分比。這將覆蓋默認閾值 -exclude -f <hosts-file> | <comma-separated list of hosts> 排除平衡器正在平衡的指定數據節點 -include -f <hosts-file> | <comma-separated list of hosts> 僅包含要由平衡器平衡的指定數據節點 -source -f <hosts-file> | <comma-separated list of hosts> 僅選取指定的數據節點做爲源節點。 -blockpools <comma-separated list of blockpool ids> 平衡器將僅在此列表中包含的塊池上運行. -idleiterations <iterations> 退出前的最大空閒迭代次數。這將覆蓋默認的空閒操做(5次)
1三、cacheadmin
cacheadmin Usage: hdfs cacheadmin -addDirective -path <path> -pool <pool-name> [-force] [-replication <replication>] [-ttl <time-to-live>] hdfs crypto -createZone -keyName <keyName> -path <path> hdfs crypto -listZones hdfs crypto -provisionTrash -path <path> hdfs crypto -help <command-name> 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html
1四、datanode
datanode #運行datanode Usage: hdfs datanode [-regular | -rollback | -rollingupgrade rollback] -regular 正常啓動(default). -rollback 將datanode回滾到之前的版本。這應該在中止datanode並分發舊的hadoop版本以後使用 -rollingupgrade rollback 回滾滾動升級操做
1五、dfsadmim(重要)
hdfs dfsadmin [GENERIC_OPTIONS] [-report [-live] [-dead] [-decommissioning]] #報告基本的文件系統信息和統計信息,包括測量全部dns上的複製、校驗和、快照等使用的原始空間。 [-safemode enter | leave | get | wait | forceExit] #安全模式維護命令 #安全模式在namenode啓動時自動進入,當配置的最小塊百分比知足最小複製條件時自動離開安全模式。若是namenode檢測到任何異常, #則它將在安全模式下逗留,直到該問題獲得解決。若是異常是故意操做的結果,那麼管理員可使用-safemode forceExit退出安全模式 [-saveNamespace] #將當前命名空間保存到存儲目錄並重置編輯日誌。須要安全模式 [-rollEdits] #在活動的namenode上滾動編輯日誌 [-restoreFailedStorage true |false |check] #此選項將打開或者關閉自動嘗試還原失敗的存儲副本。若是失敗的存儲再次可用, #系統將在檢查點期間嘗試還原編輯和fsimage。「check」選項將返回當前設置 [-refreshNodes] #從新讀取主機並排除文件,以更新容許鏈接到namenode的數據節點集,以及應解除或從新啓用的數據節點集 [-setQuota <quota> <dirname>...<dirname>] [-clrQuota <dirname>...<dirname>] [-setSpaceQuota <quota> [-storageType <storagetype>] <dirname>...<dirname>] [-clrSpaceQuota [-storageType <storagetype>] <dirname>...<dirname>] [-finalizeUpgrade] #完成hdfs的升級。datanodes刪除它們之前版本的工做目錄,而後namenode執行相同的操做。這就完成了升級過程 [-rollingUpgrade [<query> |<prepare> |<finalize>]] [-metasave filename] #將namenode的主數據結構保存到hadoop.log.dir屬性指定的目錄中的filename。若是文件名存在,它將被覆蓋。 #該文件包含帶namenode的datanodes心跳,等待複製的塊,當前正在複製的塊,等待刪除的塊 [-refreshServiceAcl] #從新加載服務級別受權策略文件 [-refreshUserToGroupsMappings] #刷新用戶到組的映射 [-refreshSuperUserGroupsConfiguration] #刷新超級用戶代理組映射 [-refreshCallQueue] #從配置從新加載調用隊列 [-refresh <host:ipc_port> <key> [arg1..argn]] #觸發由<host:ipc port>上的<key>指定的資源的運行時刷新。以後的全部其餘參數都將發送到主機 [-reconfig <datanode |...> <host:ipc_port> <start |status>] #開始從新配置或獲取正在進行的從新配置的狀態。第二個參數指定節點類型。目前,只支持從新加載datanode的配置 [-printTopology] #打印由namenode報告的機架及其節點的樹 [-refreshNamenodes datanodehost:port] #對於給定的數據節點,從新加載配置文件,中止爲已刪除的塊池提供服務,並開始爲新的塊池提供服務 [-deleteBlockPool datanode-host:port blockpoolId [force]] #若是傳遞了force,則將刪除給定數據節點上給定block pool id的塊池目錄及其內容,不然僅當該目錄爲空時才刪除該目錄。 #若是datanode仍在爲塊池提供服務,則該命令將失敗 [-setBalancerBandwidth <bandwidth in bytes per second>] #更改HDFS塊平衡期間每一個數據節點使用的網絡帶寬。<bandwidth>是每一個數據節點每秒將使用的最大字節數。 #此值重寫dfs.balance.bandwidthpersec參數。注意:新值在datanode上不是持久的 [-getBalancerBandwidth <datanode_host:ipc_port>] #獲取給定數據節點的網絡帶寬(字節/秒)。這是數據節點在hdfs塊平衡期間使用的最大網絡帶寬 [-allowSnapshot <snapshotDir>] #設置快照目錄 [-disallowSnapshot <snapshotDir>] #禁止快照 [-fetchImage <local directory>] #從namenode下載最新的fsimage並將其保存在指定的本地目錄中 [-shutdownDatanode <datanode_host:ipc_port> [upgrade]] #提交給定數據節點的關閉請求 [-getDatanodeInfo <datanode_host:ipc_port>] #獲取有關給定數據節點的信息 [-evictWriters <datanode_host:ipc_port>] #使datanode收回正在寫入塊的全部客戶端。若是因爲編寫速度慢而掛起退役,這將很是有用 [-triggerBlockReport [-incremental] <datanode_host:ipc_port>] #觸發給定數據節點的塊報告。若是指定了「增量」,則爲「增量」,不然爲完整的塊報告 [-help [cmd]]
1六、haadmin(重要)
hdfs haadmin -checkHealth <serviceId> #檢查給定namenode的運行情況 hdfs haadmin -failover [--forcefence] [--forceactive] <serviceId> <serviceId> #在兩個namenodes之間啓動故障轉移 hdfs haadmin -getServiceState <serviceId> #肯定給定的namenode是活動的仍是備用的 hdfs haadmin -help <command> hdfs haadmin -transitionToActive <serviceId> [--forceactive] #將給定namenode的狀態轉換爲active hdfs haadmin -transitionToStandby <serviceId> #將給定namenode的狀態轉換爲standby 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html
1七、journalnode
journalnode #爲經過QJM實現的高可用hdfs啓動journalnode Usage: hdfs journalnode
1八、mover
Usage: hdfs mover [-p <files/dirs> | -f <local file name>] -f 指定包含要遷移的hdfs文件/目錄列表的本地文件 -p 指定要遷移的hdfs文件/目錄的空間分隔列表 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html
1九、namenode
namenode hdfs namenode [-backup] | #開始備份節點 [-checkpoint] | #檢查點開始節點 [-format [-clusterid cid ] [-force] [-nonInteractive] ] | #格式化指定的NameNode。 它啓動NameNode, #對其進行格式化而後將其關閉。 若是名稱目錄存在,則爲-force選項格式。 若是名稱目錄存在,則-nonInteractive選項將停止,除非指定了-force選項 [-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] | #在分發新的Hadoop版本後,應該使用升級選項啓動Namenode [-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] | #升級指定的NameNode而後關閉它 [-rollback] | #將NameNode回滾到之前的版本。 應在中止羣集並分發舊Hadoop版本後使用此方法 [-rollingUpgrade <rollback |started> ] |#滾動升級 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html [-finalize] | #再也不支持。使用dfsadmin -finalizeUpgrade替換 [-importCheckpoint] | #從檢查點目錄加載image並將其保存到當前目錄中。 從屬性dfs.namenode.checkpoint.dir讀取檢查點目錄 [-initializeSharedEdits] | #格式化新的共享編輯目錄並複製足夠的編輯日誌段,以便備用NameNode能夠啓動 [-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] | #容許經過從活動NameNode複製最新的命名空間快照來引導備用NameNode的存儲目錄 [-recover [-force] ] | #在損壞的文件系統上恢復丟失的元數據 [-metadataVersion ] #驗證配置的目錄是否存在,而後打印軟件和映像的元數據版本
20、secondarynamenode
Usage: hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize] -checkpoint [force] 若是EditLog size> = fs.checkpoint.size,則檢查SecondaryNameNode。 若是使用force,則檢查點與EditLog大小無關 -format 啓動期間格式化本地存儲 -geteditsize 打印NameNode上未取消選中的事務的數量
2一、storagepolicies
storagepolicies #列出全部存儲策略 Usage: hdfs storagepolicies 詳情見:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html
2二、zkfc
Usage: hdfs zkfc [-formatZK [-force] [-nonInteractive]] -formatZK 格式化Zookeeper實例 -force: 若是znode存在,則格式化znode。 -nonInteractive:若是znode存在,則格式化znode停止,除非指定了-force選項 -h Display help
2三、verifyMeta
verifyMeta #驗證HDFS元數據和塊文件。 若是指定了塊文件,咱們將驗證元數據文件中的校驗和是否與塊文件匹配 Usage: hdfs debug verifyMeta -meta <metadata-file> [-block <block-file>] -block block-file 用於指定數據節點的本地文件系統上的塊文件的絕對路徑 -meta metadata-file 數據節點的本地文件系統上的元數據文件的絕對路徑
2四、computeMeta
computeMeta #從塊文件計算HDFS元數據。 若是指定了塊文件,咱們將從塊文件計算校驗和,並將其保存到指定的輸出元數據文件中 Usage: hdfs debug computeMeta -block <block-file> -out <output-metadata-file> -block block-file 數據節點的本地文件系統上的塊文件的絕對路徑 -out output-metadata-file 輸出元數據文件的絕對路徑,用於存儲塊文件的校驗和計算結果。
2五、recoverLease
recoverLease #恢復指定路徑上的租約。 該路徑必須駐留在HDFS文件系統上。 默認重試次數爲1 Usage: hdfs debug recoverLease -path <path> [-retries <num-retries>] [-path path] 要恢復租約的HDFS路徑 [-retries num-retries] 客戶端重試調用recoverLease的次數。 默認重試次數爲1
更多hadoop生態文章請見:hadoop生態系列