hadoop運維必備命令
1、列出所有Hadoop Shell支援的命令 $ bin/hadoop fs -help
2、顯示關於某個命令的詳細資訊
$ bin/hadoop fs -help command-name
3、使用者可使用以下命令在指定路徑下檢視歷史日誌彙總
$ bin/hadoop job -history output-dir #這條命令會顯示作業的細節資訊,失敗和終止的任務細節。
4、關於作業的更多細節,比如成功的任務,以及對每個任務的所做的嘗試次數等可以用下面的命令檢視 $ bin/hadoop job -history all output-dir
5、 格式化一個新的分散式檔案系統: $ bin/hadoop namenode -format
6、在分配的NameNode 上,執行下面的命令啟動HDFS :
$ bin/start-dfs.sh #指令碼會參照NameNode 上
${HADOOP_CONF_DIR}/slaves檔案的內容,在所有列出的slave 上啟動DataNode 守護程序。
7、在分配的JobTracker 上,執行下面的命令啟動Map/Reduce:
$ bin/start-mapred.sh #指令碼會參照JobTracker 上${HADOOP_CONF_DIR}/slaves檔案的內容,在所有列出的slave 上啟動TaskTracker 守護程序。
8、在分配的NameNode 上,執行下面的命令停止HDFS : $ bin/stop-dfs.sh #指令碼會參照NameNode 上
${HADOOP_CONF_DIR}/slaves檔案的內容,在所有列出的slave 上停止DataNode 守護程序。
9、在分配的JobTracker 上,執行下面的命令停止Map/Reduce:
$ bin/stop-mapred.sh #指令碼會參照JobTracker 上${HADOOP_CONF_DIR}/slaves檔案的內容,在所有列出的slave 上停止TaskTracker 守護程序。
10、建立一個名為 /foodir 的目錄
$ bin/hadoop dfs -mkdir /foodir
11、建立一個名為 /foodir 的目錄
$ bin/hadoop dfs -mkdir /foodir
12、檢視名為 /foodir/myfile.txt 的檔案內容 $ bin/hadoop dfs -cat /foodir/myfile.txt
13、將叢集置於安全模式
$ bin/hadoop dfsadmin -safemode enter
14、顯示Datanode 列表
$ bin/hadoop dfsadmin -report
15、使Datanode 節點datanode name退役
$ bin/hadoop dfsadmin -decommission datanodename
16、bin/hadoop dfsadmin -help 命令能列出所有當前支援的命令。
比如:
* -report :報告HDFS 的基本統計資訊。有些資訊也可以在NameNode Web服務首頁看到。
* -safemode:雖然通常並不需要,但是管理員的確可以手動讓NameNode 進入或離開安全模式。
* -finalizeUpgrade :刪除上一次升級時製作的叢集備份。
17、顯式地將HDFS 置於安全模式
$ bin/hadoop dfsadmin -safemode
18、在升級之前,管理員需要用(升級終結操作) 命令刪除存在的備份檔案
$ bin/hadoop dfsadmin -finalizeUpgrade
19、能夠知道是否需要對一個叢集執行升級終結操作。 $ dfsadmin -upgradeProgress status
20、使用-upgrade 選項執行新的版本
$ bin/start-dfs.sh -upgrade
21、如果需要退回到老版本, 就必須停止叢集並且部署老版本的Hadoop ,用回滾選項啟動叢集
$ bin/start-dfs.h -rollback
22、下面的新命令或新選項是用於支援配額,前兩個是管理員命令。
* dfsadmin -setquota ...
把每個目錄配額設為N 。這個命令會在每個目錄上嘗試,如果N 不是一個正的長整型數,目錄不存在或是檔名或者目錄超過配額則會產生錯誤報告。
* dfsadmin -clrquota ...
為每個目錄刪除配額。這個命令會在每個目錄上嘗試,如果目錄不存在或者是檔案,則會產生錯誤報告。如果目錄原來沒有設定配額不會報錯。
* fs -count -q ...
使用-q 選項,會報告每個目錄設定的配額以及剩餘配額。如果目錄沒有設定配額,會報告none 和inf 。
23、建立一個hadoop 檔案檔案
$ hadoop archive -archiveName NAME *
#-archiveName NAME 要建立的檔案的名字。
#src 檔案系統的路徑名,和通常含正則表達的一樣。 #dest 儲存檔案檔案的目標目錄。
24、遞迴地拷貝檔案或目錄
$ hadoop distcp
srcurl 源uri
desturl 目標uri
25、執行HDFS 檔案系統檢查工具(fsck tools)
用法:hadoop fsck [GENERIC_OPTIONS] [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
命令選項 描述
----------------------
檢查的起始目錄。
-move 移動受損檔案到/lost+found
-delete 刪除受損檔案。
-openforwrite 打印出寫開啟的檔案。
-files 打印出正被檢查的檔案。
-blocks 打印出塊資訊報告。
-locations 打印出每個塊的位置資訊。
-racks 打印出data-node 的網路拓撲結構。
26、用於和Map Reduce作業互動和命令(jar)
用法:hadoop job [GENERIC_OPTIONS] [-submit ] |
[-counter ] | [-kill ] |
[-events <#-of-events>] | [-history [all] ] |
[-list [all]] | [-kill-task ] | [-fail-task ] 命令選項 描述
------------------ [-status ] |
-submit 提交作業
-status 列印map 和reduce 完成百分比和所有計數器 -counter 列印計數器的值
-kill 殺死指定作業
-events <#-of-events> 列印給定範圍內jobtracker 接收到的事件細節
-history [all] -history 列印作業的細節、失敗及被殺死原因的細節
-list [all] -list all 顯示所有作業 -list只顯示將要完成的作業
-kill-task 殺死任務被殺死的任務不會不利於失敗嘗試
-fail-task 使任務失敗 被失敗的任務會對失敗嘗試不利
27、執行pipes 作業
用法:hadoop pipes [-conf ] [-jobconf , , ...]
[-input ]
[-output ] [-jar ] [-inputformat ] [-map ]
[-partitioner ]
[-reduce ] [-writer ] [-program ] [-reduces ] 命令選項 描述
------------------
-conf 作業的配置
-jobconf , , ... 增加/覆蓋作業的配置項 -input 輸入目錄
-output 輸出目錄
-jar Jar檔名
-inputformat InputFormat類
-map Java Map類
-partitioner Java Partitioner
-reduce Java Reduce類
-writer Java RecordWriter
-program 可執行程式的URI
-reduces reduce個數
28、列印版本資訊。
用法:hadoop version
29、hadoop 指令碼可用於調呼叫任何類。
用法:hadoop CLASSNAME #執行名字為CLASSNAME 的類。
30、執行叢集平衡工具管理員可以簡單的按Ctrl-C 來停止平衡過程(balancer)
用法:hadoop balancer [-threshold ]
命令選項 描述
------------------
-threshold 磁碟容量的百分比。這會覆蓋預設的閥值。
31、獲取或設定每個守護程序的日誌級別(daemonlog)。 用法:hadoop daemonlog -getlevel
用法:hadoop daemonlog -setlevel
命令選項 描述
------------------
-getlevel 列印執行在的守護程序的日誌級別 -setlevel 設定執行在的守護程序的日誌級別
32、執行一個HDFS 的datanode 。
用法:hadoop datanode [-rollback]
命令選項 描述
------------------
-rollback 將datanode 回滾到前一個版本。這需要在停止datanode ,分發老的hadoop 版本之後使用。
33、執行一個HDFS 的dfsadmin 客戶端
用法:hadoop dfsadmin [GENERIC_OPTIONS] [-report]
[-safemode enter | leave
| get | wait] [-refreshNodes] [-finalizeUpgrade]
[-upgradeProgress status |
details | force] [-metasave filename]
[-setQuota ...] [-clrQuota ...] [-help [cmd]]
34、執行MapReduce job Tracker節點(jobtracker)。 用法:hadoop jobtracker
35、執行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 指定
36、執行HDFS 的secondary namenode。
用法:hadoop secondarynamenode [-checkpoint
[force]] | [-geteditsize]
-----------------
命令選項 描述
-checkpoint [force] 如果EditLog 的大小>=
fs.checkpoint.size 啟動Secondary namenode的檢查點過程。若使用了-force 將不考慮EditLog 的大小
-geteditsize 列印EditLog 大小。
37、執行MapReduce 的task Tracker節點。 用法:hadoop tasktracker
38、顯式地將HDFS 置於安全模式
$ bin/hadoop dfsadmin -safemode
39、在升級之前,管理員需要用(升級終結操作) 命令刪除存在的備份檔案
$ bin/hadoop dfsadmin -finalizeUpgrade
40、能夠知道是否需要對一個叢集執行升級終結操作。 $ dfsadmin -upgradeProgress status
41、使用-upgrade 選項執行新的版本
$ bin/start-dfs.sh -upgrade
42、如果需要退回到老版本, 就必須停止叢集並且部署老版本的Hadoop ,用回滾選項啟動叢集
$ bin/start-dfs.h -rollback