啟動(dòng)Hadoop
start-all.sh
關(guān)閉HADOOP
stop-all.sh
查看文件列表
查看hdfs中/user/admin/aaron目錄下的文件。
hadoop fs -ls /user/admin/aaron
列出hdfs中/user/admin/aaron目錄下的所有文件(包括子目錄下的文件)。
hadoop fs -lsr /user/admin/aaron
創(chuàng)建文件目錄
hadoop fs -mkdir /user/admin/aaron/newDir
刪除文件
刪除hdfs中/user/admin/aaron目錄下一個(gè)名叫needDelete的文件
hadoop fs -rm /user/admin/aaron/needDelete
刪除hdfs中/user/admin/aaron目錄以及該目錄下的所有文件
hadoop fs -rmr /user/admin/aaron
上傳文件
hadoop fs –put /home/admin/newFile /user/admin/aaron/
下載文件
hadoop fs –get /user/admin/aaron/newFile /home/admin/newFile
查看文件
hadoop fs –cat /home/admin/newFile
新建一個(gè)空文件
hadoop fs -touchz /user/new.txt
將hadoop上某個(gè)文件重命名
hadoop fs –mv /user/test.txt /user/ok.txt
將hadoop指定目錄下所有內(nèi)容保存為一個(gè)文件,同時(shí)down至本地
hadoop dfs –getmerge /user /home/t
提交MAPREDUCE JOB
h bin/hadoop jar /home/admin/hadoop/job.jar [jobMainClass] [jobArgs]
殺死某個(gè)正在運(yùn)行的JOB
hadoop job -kill job_201005310937_0053
更多HADOOP的命令
hadoop
可以看到更多命令的說(shuō)明信息:
namenode -format format the DFS filesystem
secondarynamenode run the DFS secondary namenode
namenode run the DFS namenode
datanode run a DFS datanode
dfsadmin run a DFS admin client
fsck run a DFS filesystem checking utility
fs run a generic filesystem user client
balancer run a cluster balancing utility
jobtracker run the MapReduce job Tracker node
pipes run a Pipes job
tasktracker run a MapReduce task Tracker node
job manipulate MapReduce jobs
queue get information regarding JobQueues
version print the version
jar run a jar file
distcp copy file or directories recursively
archive -archiveName NAME * create a hadoop archive
daemonlog get/set the log level for each daemon
or
CLASSNAME run the class named CLASSNAME
Most commands print help when invoked w/o parameters.
說(shuō)明:
1、列出所有Hadoop Shell支持的命令
$bin/hadoop fs -help
2、顯示關(guān)于某個(gè)命令的詳細(xì)信息
$bin/hadoop fs -help command-name
3、用戶可使用以下命令在指定路徑下查看歷史日志匯總,顯示作業(yè)的細(xì)節(jié)信息,失敗和終止的任務(wù)細(xì)節(jié)
$bin/hadoop job -history output-dir
4、關(guān)于作業(yè)的更多細(xì)節(jié),比如成功的任務(wù),以及對(duì)每個(gè)任務(wù)的所做的嘗試次數(shù)等可以用下面的命令查看
$bin/hadoop job -history all output-dir
5、格式化一個(gè)新的分布式文件系統(tǒng)
$bin/hadoop namenode -format
6、在分配的NameNode上,運(yùn)行下面的命令啟動(dòng)HDFS,所有列出的slave上啟動(dòng)DataNode守護(hù)進(jìn)程
$bin/start-dfs.sh
7、在分配的JobTracker上,運(yùn)行下面的命令啟動(dòng)Map/Reduce
$bin/start-mapred.sh
8、在分配的NameNode上,執(zhí)行下面的命令停止HDFS:
$bin/stop-dfs.sh
9、在分配的JobTracker上,運(yùn)行下面的命令停止Map/Reduce:
$bin/stop-mapred.sh
DFSShell
10、創(chuàng)建一個(gè)名為 /foodir 的目錄
$bin/hadoop dfs -mkdir /foodir
11、創(chuàng)建一個(gè)名為 /foodir 的目錄
$bin/hadoop dfs -mkdir /foodir
12、查看名為/foodir/myfile.txt 的文件內(nèi)容
$bin/hadoop dfs -cat /foodir/myfile.txt
DFSAdmin
13、將集群置于安全模式
$bin/hadoop dfsadmin -safemode enter
14、顯示Datanode列表
$bin/hadoop dfsadmin -report
15、使Datanode節(jié)點(diǎn)datanodename退役
$bin/hadoop dfsadmin -decommission datanodename
16、bin/hadoop dfsadmin-help 命令能列出所有當(dāng)前支持的命令。比如:
*-report:報(bào)告HDFS的基本統(tǒng)計(jì)信息。有些信息可以在NameNode Web服務(wù)首頁(yè)看到。
*-safemode:通常并不需要,管理員的確可以手動(dòng)讓NameNode進(jìn)入或離開(kāi)安全模式。
*-finalizeUpgrade:刪除上一次升級(jí)時(shí)制作的集群備份。
17、顯式地將HDFS置于安全模式
$bin/hadoop dfsadmin -safemode
18、在升級(jí)之前,管理員需要用(升級(jí)終結(jié)操作)命令刪除存在的備份文件
$bin/hadoop dfsadmin -finalizeUpgrade
19、能夠知道是否需要對(duì)一個(gè)集群執(zhí)行升級(jí)終結(jié)操作。
$dfsadmin -upgradeProgress status
20、使用-upgrade選項(xiàng)運(yùn)行新的版本
$bin/start-dfs.sh -upgrade
21、需要退回到老版本,就必須停止集群并且部署老版本的Hadoop,用回滾選項(xiàng)啟動(dòng)集群
$bin/start-dfs.h -rollback
22、下面的新命令或新選項(xiàng)是用于支持配額的。前兩個(gè)是管理員命令。
*dfsadmin -setquota ...
把每個(gè)目錄配額設(shè)為N。這個(gè)命令會(huì)在每個(gè)目錄上嘗試,如果N不是一個(gè)正的長(zhǎng)整型數(shù),目錄不存在或是文件名,或者目錄超過(guò)配額,則會(huì)產(chǎn)生錯(cuò)誤報(bào)告。
*dfsadmin -clrquota ...
為每個(gè)目錄刪除配額。這個(gè)命令會(huì)在每個(gè)目錄上嘗試,如果目錄不存在或者是文件,則會(huì)產(chǎn)生錯(cuò)誤報(bào)告。如果目錄原來(lái)沒(méi)有設(shè)置配額不會(huì)報(bào)錯(cuò)。
*fs -count -q ...
使用-q選項(xiàng),會(huì)報(bào)告每個(gè)目錄設(shè)置的配額,以及剩余配額。如果目錄沒(méi)有設(shè)置配額,會(huì)報(bào)告none和inf。
23、創(chuàng)建一個(gè)hadoop檔案文件
$hadoop archive -archiveName NAME *
-archiveName NAME 要?jiǎng)?chuàng)建的檔案的名字。
src文件系統(tǒng)的路徑名,和通常含正則表達(dá)的一樣。
dest保存檔案文件的目標(biāo)目錄。
24、遞歸拷貝文件或目錄
$hadoop distcp
srcurl 源Url
desturl 目標(biāo)Url
25、運(yùn)行HDFS文件系統(tǒng)檢查工具(fsck tools)
用法:hadoopfsck [GENERIC_OPTIONS] [-move | -delete | -openforwrite] [-files[-blocks [-locations | -racks]]]
命令選項(xiàng)描述
檢查的起始目錄。
-move 移動(dòng)受損文件到/lost+found
-delete 刪除受損文件。
-openforwrite 打印出寫打開(kāi)的文件。
-files 打印出正被檢查的文件。
-blocks 打印出塊信息報(bào)告。
-locations 打印出每個(gè)塊的位置信息。
-racks 打印出data-node的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
26、用于和Map Reduce作業(yè)交互和命令(jar)
用法:Hadoopjob [GENERIC_OPTIONS] [-submit ] | [-status ] |[-counter ] | [-kill] | [-events <from-event-#><#-of-events>] | [-history [all] ] | [-list [all]] |[-kill-task ] | [-fail-task ]
命令選項(xiàng)描述
-submit 提交作業(yè)
-status 打印map和reduce完成百分比和所有計(jì)數(shù)器。
-counter打印計(jì)數(shù)器的值。
-kill 殺死指定作業(yè)。
-events <from-event-#><#-of-events> 打印給定范圍內(nèi)jobtracker接收到的事件細(xì)節(jié)。
-history [all] -history 打印作業(yè)的細(xì)節(jié)、失敗及被殺死原因的細(xì)節(jié)。更多的關(guān)于一個(gè)作業(yè)的細(xì)節(jié)比如
成功的任務(wù),做過(guò)的任務(wù)嘗試等信息可以通過(guò)指定[all]選項(xiàng)查看。
-list [all] -listall 顯示所有作業(yè)。-list只顯示將要完成的作業(yè)。
-kill-task 殺死任務(wù)。被殺死的任務(wù)不會(huì)不利于失敗嘗試。
-fail-task 使任務(wù)失敗。被失敗的任務(wù)會(huì)對(duì)失敗嘗試不利。
27、運(yùn)行pipes作業(yè)
用法:hadooppipes [-conf ] [-jobconf <key=value>, <key=value>, ...][-input ] [-output ] [-jar ][-inputformat ] [-map ] [-partitioner ][-reduce ] [-writer ] [-program ][-reduces ]
命令選項(xiàng)描述
-conf 作業(yè)的配置
-jobconf<key=value>, <key=value>, ... 增加/覆蓋作業(yè)的配置項(xiàng)
-input 輸入目錄
-output 輸出目錄
-jar Jar文件名
-inputformat InputFormat類
-map JavaMap類
-partitioner JavaPartitioner
-reduce JavaReduce類
-writer JavaRecordWriter
-program 可執(zhí)行程序的URI
-reduces reduce個(gè)數(shù)
28、打印版本信息。
用法:hadoop version
29、hadoop腳本可用于調(diào)調(diào)用任何類。
用法:hadoop CLASSNAME
運(yùn)行名字為CLASSNAME的類。
30、運(yùn)行集群平衡工具。管理員可以簡(jiǎn)單的按Ctrl-C來(lái)停止平衡過(guò)程(balancer)
用法:hadoop balancer [-threshold ]
命令選項(xiàng)描述
-threshold 磁盤容量的百分比。這會(huì)覆蓋缺省的閥值。
31、獲取或設(shè)置每個(gè)守護(hù)進(jìn)程的日志級(jí)別(daemonlog)。
用法:hadoopdaemonlog -getlevel
用法:hadoopdaemonlog -setlevel
命令選項(xiàng)描述
-getlevel打印運(yùn)行在的守護(hù)進(jìn)程的日志級(jí)別。這個(gè)命令內(nèi)部會(huì)連接http:///logLevel?log=
-setlevel設(shè)置運(yùn)行在的守護(hù)進(jìn)程的日志級(jí)別。這個(gè)命令內(nèi)部會(huì)連接http:///logLevel?log=
32、運(yùn)行一個(gè)HDFS的datanode。
用法:hadoopdatanode [-rollback]
命令選項(xiàng)描述
-rollback 將datanode回滾到前一個(gè)版本。這需要在停止datanode,分發(fā)老的hadoop版本之后使用。
33、運(yùn)行一個(gè)HDFS的dfsadmin客戶端。
用法:hadoopdfsadmin [GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait][-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force][-metasave filename] [-setQuota ...] [-clrQuota...] [-help [cmd]]
命令選項(xiàng)描述
-report 報(bào)告文件系統(tǒng)的基本信息和統(tǒng)計(jì)信息。
-safemode enter |leave | get | wait 安全模式維護(hù)命令。安全模式是Namenode的一個(gè)狀態(tài),這種狀態(tài)下,Namenode
1. 不接受對(duì)名字空間的更改(只讀)
2. 不復(fù)制或刪除塊
Namenode會(huì)在啟動(dòng)時(shí)自動(dòng)進(jìn)入安全模式,當(dāng)配置的塊最小百分比數(shù)滿足最小的副本數(shù)條件時(shí),會(huì)自動(dòng)離開(kāi)安全模式。安全模式可以手動(dòng)進(jìn)入,但是這樣的話也必須手動(dòng)關(guān)閉安全模式。
-refreshNodes 重新讀取hosts和exclude文件,更新允許連到Namenode的或那些需要退出或入編的Datanode的集合。
-finalizeUpgrade 終結(jié)HDFS的升級(jí)操作。Datanode刪除前一個(gè)版本的工作目錄,之后Namenode也這樣做。這個(gè)操作完結(jié)整個(gè)升級(jí)過(guò)程。
-upgradeProgressstatus | details | force 請(qǐng)求當(dāng)前系統(tǒng)的升級(jí)狀態(tài),狀態(tài)的細(xì)節(jié),或者強(qiáng)制升級(jí)操作進(jìn)行。
-metasave filename 保存Namenode的主要數(shù)據(jù)結(jié)構(gòu)到hadoop.log.dir屬性指定的目錄下的文件。對(duì)于下面的每一項(xiàng),
中都會(huì)一行內(nèi)容與之對(duì)應(yīng)
1. Namenode收到的Datanode的心跳信號(hào)
2. 等待被復(fù)制的塊
3. 正在被復(fù)制的塊
4. 等待被刪除的塊
-setQuota ... 為每個(gè)目錄 設(shè)定配額。目錄配額是一個(gè)長(zhǎng)整型整數(shù),強(qiáng)制限定了目錄樹(shù)下的名字個(gè)數(shù)。
命令會(huì)在這個(gè)目錄上工作良好,以下情況會(huì)報(bào)錯(cuò):
1. N不是一個(gè)正整數(shù),或者
2. 用戶不是管理員,或者
3. 這個(gè)目錄不存在或是文件,或者
4. 目錄會(huì)馬上超出新設(shè)定的配額。
-clrQuota... 為每一個(gè)目錄清除配額設(shè)定。
命令會(huì)在這個(gè)目錄上工作良好,以下情況會(huì)報(bào)錯(cuò):
1. 這個(gè)目錄不存在或是文件,或者
2. 用戶不是管理員。
如果目錄原來(lái)沒(méi)有配額不會(huì)報(bào)錯(cuò)。
-help [cmd] 顯示給定命令的幫助信息,如果沒(méi)有給定命令,則顯示所有命令的幫助信息。
34、運(yùn)行MapReduce job Tracker節(jié)點(diǎn)(jobtracker)。
用法:hadoopjobtracker
35、運(yùn)行namenode。有關(guān)升級(jí),回滾,升級(jí)終結(jié)的更多信息請(qǐng)參考升級(jí)和回滾。
用法:hadoopnamenode [-format] | [-upgrade] | [-rollback] | [-finalize] |[-importCheckpoint]
命令選項(xiàng)描述
-format 格式化namenode。它啟動(dòng)namenode,格式化namenode,之后關(guān)閉namenode。
-upgrade 分發(fā)新版本的hadoop后,namenode應(yīng)以u(píng)pgrade選項(xiàng)啟動(dòng)。
-rollback 將namenode回滾到前一版本。這個(gè)選項(xiàng)要在停止集群,分發(fā)老的hadoop版本后使用。
-finalize finalize會(huì)刪除文件系統(tǒng)的前一狀態(tài)。最近的升級(jí)會(huì)被持久化,rollback選項(xiàng)將再
不可用,升級(jí)終結(jié)操作之后,它會(huì)停掉namenode。
-importCheckpoint 從檢查點(diǎn)目錄裝載鏡像并保存到當(dāng)前檢查點(diǎn)目錄,檢查點(diǎn)目錄由fs.checkpoint.dir指定。
36、運(yùn)行HDFS的secondary namenode。
用法:hadoopsecondarynamenode [-checkpoint [force]] | [-geteditsize]
命令選項(xiàng)描述
-checkpoint [force] 如果EditLog的大小 >= fs.checkpoint.size,啟動(dòng)Secondary namenode的檢查點(diǎn)
過(guò)程。如果使用了-force,將不考慮EditLog的大小。
-geteditsize 打印EditLog大小。