1. 程式人生 > >hadoop運維必備命令

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