hadoop命令詳解
一、使用者命令
1、archive命令
(1).什麼是Hadoop archives?
Hadoop archives是特殊的檔案格式。一個Hadoop archive對應一個檔案系統目錄。 Hadoop archive的副檔名是*.har。Hadoop archive包含後設資料(形式是_index和_masterindx)和資料檔案(part-*)。_index檔案包含了檔案中的檔案的檔名和位置資訊。
(2).如何建立archive?
用法:hadoop archive -archiveName NAME
命令選項:
-archiveName NAME 要建立的檔案的名字。
src 原始檔系統的路徑名。
dest 儲存檔案檔案的目標目錄。
範例:
例1.將/user/hadoop/dir1和/user/hadoop/dir2歸檔到/user/zoo/檔案系統目錄下–/user/zoo/foo.har。
hadoop@ubuntu:~/ hadoop archive -archiveName foo.har /user/hadoop/dir1 /user/hadoop/dir2 /user/zoo/
當建立archive時,原始檔foo.har不會被更改或刪除。
(3).如何檢視archives中的檔案?
archive作為檔案系統層暴露給外界。所以所有的fs shell命令都能在archive上執行,但是要使用不同的URI。另外,archive是不可改變的。所以建立、重新命名和刪除都會返回錯誤。Hadoop Archives的URI是har://scheme-hostname:port/archivepath/fileinarchive。
如果沒提供scheme-hostname,它會使用預設的檔案系統。這種情況下URI是這種形式har:///archivepath/fileinarchive。
範例:
例1.archive的輸入是/dir,該dir目錄包含檔案filea和fileb,現把/dir歸檔到/user/hadoop/foo.bar。
hadoop@ubuntu:~/ hadoop archive -archiveName foo.har /dir /user/hadoop
例2.獲得建立的archive中的檔案列表
hadoop@ubuntu:~/hadoop dfs -lsr har:///user/hadoop/foo.har
例3.檢視archive中的filea檔案
hadoop@ubuntu:~/hadoop dfs -cat har:///user/hadoop/foo.har/dir/filea
2、distcp
說明:用於叢集內部或者叢集之間複製資料的常用命令(顧名思義: dist即分散式,分散式複製是也。)。
用法:hadoop distcp [選項] src_url dest_url
命令選項:
-m 表示啟用多少map
-delete 刪除已經存在的目標檔案,不會刪除原始檔。這個刪除是透過FS Shell實現的。所以如果垃圾回收機制啟動的話,刪除的目標檔案會進入trash。
-i 忽略失敗。這個選項會比預設情況提供關於複製的更精確的統計,同時它還將保留失敗複製操作的日誌,這些日誌資訊可以用於除錯。最後,如果一個map失敗了,但並沒完成所有分塊任務的嘗試,這不會導致整個作業的失敗。
-overwrite 覆蓋目標。如果一個map失敗並且沒有使用-i選項,不僅僅那些複製失敗的檔案,這個分塊任務中的所有檔案都會被重新複製。 所以這就是為什麼要使用-i引數。
範例:
例1.
hadoop@ubuntu:~/ hadoop distcp "hdfs://A:8020/user/foo/bar" "hdfs://B:8020/user/foo/baz"
3、fs
說明:執行一個常規的檔案系統客戶端。
用法:hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS]
各種命令選項可以參考HDFS Shell指南。
4、fsck
說明:用來檢查整個檔案系統的健康狀況,但是要注意它不會主動恢復備份缺失的block,這個是由NameNode單獨的執行緒非同步處理的。
用法:hadoop fsck [GENERIC_OPTIONS] [-move|-delete|-openforwrite] [-files [-blocks [-locations | -racks]]]
引數選項:
-move 破損的檔案移至/lost+found目錄
-delete 刪除破損的檔案
-openforwrite 列印正在開啟寫操作的檔案
-files 列印正在check的檔名
-blocks 列印block報告(需要和-files引數一起使用)
-locations 列印每個block的位置資訊(需要和-files引數一起使用)
-racks 列印位置資訊的網路拓撲圖(需要和-files引數一起使用)
範例:
例1.
hadoop@ubuntu:~/hadoop-1.1.1/bin$ hadoop fsck /
Warning: $HADOOP_HOME is deprecated.
FSCK started by hadoop from /192.168.11.156 for path / at Sat Dec 29 19:33:40 PST 2012
.Status: HEALTHY
Total size: 4 B
Total dirs: 9
Total files: 1
Total blocks (validated): 1 (avg. block size 4 B)
Minimally replicated blocks: 1 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 1 #預設的備份引數1
Average block replication: 1.0
Corrupt blocks: 0 #破損的block數0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 1
Number of racks: 1
FSCK ended at Sat Dec 29 19:33:40 PST 2012 in 4 milliseconds
The filesystem under path '/' is HEALTHY
hadoop@ubuntu:~/hadoop-1.1.1/bin$
5、jar
說明:執行jar檔案。使用者可以把他們的Map Reduce程式碼捆綁到jar檔案中,使用這個命令執行。
用法:hadoop jar
範例:
例1.在叢集上執行Map Reduce程式,以WordCount程式為例
hadoop jar /home/hadoop/hadoop-1.1.1/hadoop-examples.jar wordcount input output
描述:
hadoop jar:執行jar命令
/home/hadoop/hadoop-1.1.1/hadoop-examples.jar: WordCount所在jar
wordcount:程式主類名
input output:輸入輸出資料夾
6、job
說明:用於和Map Reduce作業互動和命令。
用法:hadoop job [GENERIC_OPTIONS] [-submit ] | [-status ] | [-counter ] | [-kill ] | [-events ] | [-history [all] ] | [-list [all]] | [-kill-task ] | [-fail-task ]
引數選項:
-submit
-status
-counter
-kill
-events
-history [all] :-history 列印作業的細節、失敗及被殺死原因的細節。更多的關於一個作業的細節比如成功的任務,做過的任務嘗試等資訊可以透過指定[all]選項檢視。
-list [all]:-list all顯示所有作業。-list只顯示將要完成的作業。
-kill-task
-fail-task
7、pipes
說明:執行pipes作業。
用法:hadoop pipes [-conf ] [-jobconf , , ...] [-input ] [-output ] [-jar ] [-inputformat ] [-map ] [-partitioner ] [-reduce ] [-writer ] [-program ] [-reduces ]
引數選項:
-conf
-jobconf
-input
-output
-jar
-inputformat
-map
-partitioner
-reduce
-writer
-program
-reduces
8、version
說明:列印版本資訊。
用法:hadoop version
9、CLASSNAME
說明:hadoop指令碼可用於呼叫任何類。
用法:hadoop CLASSNAME
描述:執行名字為CLASSNAME的類。
二、管理命令
hadoop叢集管理員常用的命令。
1、balancer
說明:執行叢集平衡工具。管理員可以簡單的按Ctrl-C來停止平衡過程。
用法:hadoop balancer [-threshold ]
引數選項:
-threshold
2、daemonlog
說明:獲取或設定每個守護程式的日誌級別。
用法:hadoop daemonlog -getlevel
用法:hadoop daemonlog -setlevel
引數選項:
-getlevel
-setlevel
3、datanode
說明:執行一個HDFS的datanode。
用法:hadoop datanode [-rollback]
引數選項:
-rollback:將datanode回滾到前一個版本。這需要在停止datanode,分發老的hadoop版本之後使用。
4、dfsadmin
說明:執行一個HDFS的dfsadmin客戶端。
用法:hadoop dfsadmin [GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait] [-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force] [-metasave filename] [-setQuota ...] [-clrQuota ...] [-help [cmd]]
引數選項:
-report:報告檔案系統的基本資訊和統計資訊。
…
5、jobtracker
說明:執行MapReduce job Tracker節點。
用法:hadoop jobtracker
6、namenode
說明:執行namenode。
用法:hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint]
引數選項:
-format:格式化namenode。它啟動namenode,格式化namenode,之後關閉namenode。
-upgrade:分發新版本的hadoop後,namenode應以upgrade選項啟動。
-rollback:將namenode回滾到前一版本。這個選項要在停止叢集,分發老的hadoop版本後使用。
-finalize:finalize會刪除檔案系統的前一狀態。最近的升級會被持久化,rollback選項將再不可用,升級終結操作之後,它會停掉namenode。
-importCheckpoint 從檢查點目錄裝載映象並儲存到當前檢查點目錄,檢查點目錄由fs.checkpoint.dir指定。
7、secondarynamenode
說明:執行HDFS的secondary namenode。
用法:hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize]
引數選項:
-checkpoint [force]:如果EditLog的大小 >= fs.checkpoint.size,啟動Secondary namenode的檢查點過程。 如果使用了-force,將不考慮EditLog的大小。
-geteditsize:列印EditLog大小。
8、tasktracker
說明:執行MapReduce的task Tracker節點。
用法:hadoop tasktracker
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26613085/viewspace-1222265/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- hadoop Shell命令詳解Hadoop
- Hadoop Shuffle詳解Hadoop
- hadoop SecondNamenode詳解Hadoop
- Hadoop中的Shuffle詳解Hadoop
- Dockerfile 命令詳解Docker
- tcpdump命令詳解TCP
- getsebool命令詳解
- w命令詳解
- GCC命令詳解GC
- echo命令詳解
- brctl 命令詳解
- rsync命令詳解
- echo 命令詳解
- date 命令詳解
- free 命令詳解
- NPM命令詳解NPM
- docker命令詳解Docker
- ps命令詳解
- lsof命令詳解
- SVN命令詳解
- 命令模式 詳解模式
- Ethtool命令詳解
- find命令詳解
- test命令詳解
- awk命令詳解
- vmstat命令詳解
- find 命令詳解
- RMAN 命令詳解
- curl命令詳解
- crontab命令詳解
- docker 命令詳解Docker
- unix at命令詳解
- nohup命令詳解
- grep 命令詳解
- vi命令詳解
- Tasklist命令詳解
- at命令使用詳解
- top命令詳解