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 <src>* <dest>
命令選項:
-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]]]
參數選項:
<path> 檢查這個目錄中的文件是否完整
-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 <jar> [mainClass] args…
範例:
例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 <#-of-events>] | [-history [all] ] | [-list [all]] | [-kill-task ] | [-fail-task ]
參數選項:
-submit <job-file>:提交作業
-status <job-id>:打印map和reduce完成百分比和所有計數器。
-counter <job-id> <group-name> <counter-name>:打印計數器的值。
-kill <job-id>:殺死指定作業。
-events <job-id> <from-event-#> <#-of-events>:打印給定範圍內jobtracker接收到的事件細節。
-history [all] :-history 打印作業的細節、失敗及被殺死原因的細節。更多的關於一個作業的細節比如成功的任務,做過的任務嘗試等信息可以通過指定[all]選項查看。 
-list [all]:-list all顯示所有作業。-list只顯示將要完成的作業。
-kill-task <task-id>:殺死任務。被殺死的任務不會不利於失敗嘗試。
-fail-task <task-id>:使任務失敗。被失敗的任務會對失敗嘗試不利。

7、pipes
說明:運行pipes作業。
用法:hadoop pipes [-conf ] [-jobconf , , ...] [-input ] [-output ] [-jar ] [-inputformat ] [-map ] [-partitioner ] [-reduce ] [-writer ] [-program ] [-reduces ]
參數選項:
-conf <path>:作業的配置
-jobconf <key=value>, <key=value>, …:增加/覆蓋作業的配置項
-input <path>:輸入目錄
-output <path>:輸出目錄
-jar <jar file>:Jar文件名
-inputformat <class>:InputFormat類
-map <class>:Java Map類
-partitioner <class>:Java Partitioner
-reduce <class>:Java Reduce類
-writer <class>:Java RecordWriter
-program <executable>:可執行程序的URI
-reduces <num>:reduce個數

8、version
說明:打印版本信息。
用法:hadoop version

9、CLASSNAME
說明:hadoop腳本可用於調用任何類。
用法:hadoop CLASSNAME
描述:運行名字爲CLASSNAME的類。

二、管理命令
hadoop集羣管理員常用的命令。

1、balancer
說明:運行集羣平衡工具。管理員可以簡單的按Ctrl-C來停止平衡過程。
用法:hadoop balancer [-threshold ]
參數選項:
-threshold <threshold>:磁盤容量的百分比。這會覆蓋缺省的閥值。

2、daemonlog
說明:獲取或設置每個守護進程的日誌級別。
用法:hadoop daemonlog -getlevel <host:port> <name>
用法:hadoop daemonlog -setlevel <host:port> <name> <level>
參數選項:
-getlevel <host:port> <name>:打印運行在<host:port>的守護進程的日誌級別。這個命令內部會連接http://<host:port>/logLevel?log=<name>
-setlevel <host:port> <name> <level>:設置運行在<host:port>的守護進程的日誌級別。這個命令內部會連接http://<host:port>/logLevel?log=<name>

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

發佈了99 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章