Hadoop基本命令

目錄

<一啓動/暫停操作>. 2

1,啓動Hadoop. 2

2,關閉Hadoop. 2

3,打印版本信息。... 2

4、hadoop腳本可用於調試任何類... 2

<二>,文件操作... 3

1、格式化一個新的分佈式文件系統:... 3

2、查看指定目錄下內容... 3

3、查看指定目錄下的所有文件(包括子目錄下的文件)3

4、打開某個已存在文件... 3

5、將本地文件存儲至hadoop. 3

6、將本地文件夾存儲至hadoop. 3

7、將hadoop上某個文件down至本地已有目錄下... 3

8、刪除hadoop上指定文件... 3

9、刪除hadoop上指定文件夾(包含子目錄等)... 3

10、在hadoop指定目錄內創建新目錄... 4

11、在hadoop指定目錄下新建一個空文件... 4

12、將hadoop上某個文件重命名... 4

13、將hadoop指定目錄下所有內容保存爲一個文件,同時down至本地... 4

14、在分配的NameNode上,運行下面的命令啓動HDFS:... 4

15、在分配的NameNode上,執行下面的命令停止HDFS:... 4

16、列出所有Hadoop Shell支持的命令... 4

17、顯示關於某個命令的詳細信息... 4

18、使用-upgrade選項運行新的版本... 5

19、如果需要退回到老版本,就必須停止集羣並且部署老版本... 5

20、遞歸地拷貝文件或目錄... 5

21、創建一個hadoop檔案文件... 5

<三>MapReduceJob操作... 5

1, 運行一個"作業.jar"的MapReduce Job. 5

2、在分配的JobTracker上,運行下面的命令啓動Map/Reduce:... 5

3、在分配的JobTracker上,運行下面的命令停止Map/Reduce:... 5

4、將正在運行的hadoop作業kill掉... 5

5、用戶可使用以下命令在指定路徑下查看歷史日誌彙總... 6

6、關於作業的更多細節,比如成功的任務,以及對每個任... 6

<四>DFSAdmin. 6

1、顯式地將HDFS置於安全模式... 6

2、退出安全模式... 6

3、將集羣置於安全模式... 6

4、顯示Datanode列表... 6

5、使Datanode節點 datanodename退役... 6

6、bin/hadoop dfsadmin -help 命令能列出所有當前支持的命令。比如:... 6

7、在升級之前,管理員需要用(升級終結操作)命令刪除存在的備份文件... 7

8、能夠知道是否需要對一個集羣執行升級終結操作。... 7

9、運行一個HDFS的dfsadmin客戶端。... 7

<五>其它... 8

1、運行pipes作業... 8

2、用於和Map Reduce作業交互和命令(jar)8

3、運行namenode。有關升級,回滾,升級終結的更多信息請參考升級和回滾。... 9

4、運行HDFS的secondary namenode。... 10

5、運行一個HDFS的datanode. 10

6、運行MapReduce job Tracker節點(jobtracker)。... 10

7、運行MapReduce的task Tracker節點。... 10

8、運行HDFS文件系統檢查工具(fsck tools)10

9、運行集羣平衡工具。管理員可以簡單的按Ctrl-C來停止平衡過程(balancer)10

11、支持配額:... 11

12、瞭解更多,... 11

學習資料:12

<hadoop命令大全>Royce Wang專欄... 12

<HADOOP基本操作命令>逖寒的世界... 12

<hadoop常用命令 >鑫的技術平臺... 12

 

<一啓動/暫停操作>

1,啓動Hadoop

執行bin/start-all.sh

2,關閉Hadoop

執行bin/stop-all.sh

3,打印版本信息。

執行bin/hadoopversion

4、hadoop腳本可用於調試任何類

 用法:bin/hadoopCLASSNAME

            運行名字爲CLASSNAME的類。

 <二>,文件操作

1、格式化一個新的分佈式文件系統:

$ bin/hadoop namenode -format

2、查看指定目錄下內容

bin/hadoop dfs –ls [文件目錄]

3、查看指定目錄下的所有文件(包括子目錄下的文件)

bin/hadoop fs -lsr [文件目錄]

4、打開某個已存在文件

bin/hadoop dfs –cat [file_path]

5、將本地文件存儲至hadoop

hadoop fs –put [本地地址] [hadoop目錄]

6、將本地文件夾存儲至hadoop

hadoop fs –put [本地目錄] [hadoop目錄

7、將hadoop上某個文件down至本地已有目錄下

hadoop fs -get [文件目錄] [本地目錄]

8、刪除hadoop上指定文件

hadoop fs –rm [文件地址]

9、刪除hadoop上指定文件夾(包含子目錄等)

hadoop fs –rm [目錄地址]

10、在hadoop指定目錄內創建新目錄

hadoop fs –mkdir /user/t

11、在hadoop指定目錄下新建一個空文件

hadoop  fs  -touchz /user/new.txt

12、將hadoop上某個文件重命名

hadoop  fs  –mv /user/test.txt  /user/ok.txt   (將test.txt重命名爲ok.txt

13、將hadoop指定目錄下所有內容保存爲一個文件,同時down至本地

hadoop dfs –getmerge /user /home/t

14、在分配的NameNode上,運行下面的命令啓動HDFS:

  $ bin/start-dfs.sh

  bin/start-dfs.sh腳本會參照NameNode${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啓動DataNode守護進程。

15、在分配的NameNode上,執行下面的命令停止HDFS:

  $ bin/stop-dfs.sh
  bin/stop-dfs.sh
腳本會參照NameNode${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止DataNode守護進程。

16、列出所有Hadoop Shell支持的命令

  $ bin/hadoop fs -help

17、顯示關於某個命令的詳細信息

  $ bin/hadoop fs -helpcommand-name

18、使用-upgrade選項運行新的版本

  $ bin/start-dfs.sh -upgrade

19、如果需要退回到老版本,就必須停止集羣並且部署老版本的Hadoop,用回滾選項啓動集羣

  $ bin/start-dfs.h -rollback

20、遞歸地拷貝文件或目錄

  $ hadoop distcp<srcurl> <desturl>

                        srcurl      Url

                        desturl    目標Url

21、創建一個hadoop檔案文件

  $ hadoop archive-archiveName NAME <src>* <dest>

                        -archiveNameNAME  要創建的檔案的名字。

                        src文件系統的路徑名,和通常含正則表達的一樣。

                        dest保存檔案文件的目標目錄。

<三>MapReduceJob操作

1, 運行一個"作業.jar"的MapReduceJob

hadoop jar 作業.jar  [jobMainClass] [jobArgs]

2、在分配的JobTracker上,運行下面的命令啓動Map/Reduce:

  $ bin/start-mapred.sh

  bin/start-mapred.sh腳本會參照JobTracker${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啓動TaskTracker守護進程。

3、在分配的JobTracker上,運行下面的命令停止Map/Reduce:

 $ bin/stop-mapred.sh

  bin/stop-mapred.sh腳本會參照JobTracker${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止TaskTracker守護進程。

 4、將正在運行的hadoop作業kill掉

hadoop job –kill  [job-id]

5、用戶可使用以下命令在指定路徑下查看歷史日誌彙總

  $ bin/hadoop job-history output-dir
這條命令會顯示作業的細節信息,失敗和終止的任務細節。

6、關於作業的更多細節,比如成功的任務,以及對每個任務的所做的嘗試次數等可以用下面的命令查看

  $ bin/hadoop job -historyall output-dir

<四>DFSAdmin

1、顯式地將HDFS置於安全模式

  $ bin/hadoop dfsadmin -safemode

2、退出安全模式

  $ bin/hadoop dfsadmin-safemode

3、將集羣置於安全模式     

  $ bin/hadoop dfsadmin-safemode enter

4、顯示Datanode列表

  $ bin/hadoop dfsadmin-report

5、使Datanode節點 datanodename退役 

  $ bin/hadoop dfsadmin-decommission datanodename

6、bin/hadoop dfsadmin -help 命令能列出所有當前支持的命令。比如:

    * -report:報告HDFS的基本統計信息。有些信息也可以在NameNode Web服務首頁看到。

    * -safemode:雖然通常並不需要,但是管理員的確可以手動讓NameNode進入或離開安全模式。

    *-finalizeUpgrade:刪除上一次升級時製作的集羣備份。

7、在升級之前,管理員需要用(升級終結操作)命令刪除存在的備份文件

  $ bin/hadoop dfsadmin -finalizeUpgrade

8、能夠知道是否需要對一個集羣執行升級終結操作。

  $ bin/hadoop dfsadmin-upgradeProgress status

9、運行一個HDFS的dfsadmin客戶端。

用法:hadoop dfsadmin[GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait][-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force][-metasave filename] [-setQuota <quota><dirname>...<dirname>] [-clrQuota<dirname>...<dirname>] [-help [cmd]]

命令選項                                                       描述

-report                                                       報告文件系統的基本信息和統計信息。

-safemode enter | leave | get | wait                               安全模式維護命令。安全模式是Namenode的一個狀態,這種狀態下,Namenode

1. 不接受對名字空間的更改(只讀)

2. 不復制或刪除塊

Namenode會在啓動時自動進入安全模式,當配置的塊最小百分比數滿足最小的副本數條件時,會自動離開安全模式。安全模式可以手動進入,但是這樣的話也必須手動關閉安全模式。

-refreshNodes                                     重新讀取hostsexclude文件,更新允許連到Namenode的或那些需要退出或入編的Datanode的集合。

-finalizeUpgrade                             終結HDFS的升級操作。Datanode刪除前一個版本的工作目錄,之後Namenode也這樣做。這個操作完結整個升級過程。

-upgradeProgress status | details |force      請求當前系統的升級狀態,狀態的細節,或者強制升級操作進行。

-metasave filename                             保存Namenode的主要數據結構到hadoop.log.dir屬性指定的目錄下的<filename>文件。對於下面的每一項,

                                                 <filename>中都會一行內容與之對應

1. Namenode收到的Datanode的心跳信號

2. 等待被複制的塊

3. 正在被複制的塊

4. 等待被刪除的塊

-setQuota <quota><dirname>...<dirname>     爲每個目錄 <dirname>設定配額<quota>。目錄配額是一個長整型整數,強制限定了目錄樹下的名字個數。

命令會在這個目錄上工作良好,以下情況會報錯:

1. N不是一個正整數,或者

2. 用戶不是管理員,或者

3. 這個目錄不存在或是文件,或者

4. 目錄會馬上超出新設定的配額。

-clrQuota<dirname>...<dirname>     爲每一個目錄<dirname>清除配額設定。

命令會在這個目錄上工作良好,以下情況會報錯:
1.
這個目錄不存在或是文件,或者
2.
用戶不是管理員。

如果目錄原來沒有配額不會報錯。

-help [cmd]     顯示給定命令的幫助信息,如果沒有給定命令,則顯示所有命令的幫助信息。

<五>其它

1、運行pipes作業

用法:hadoop pipes[-conf <path>] [-jobconf <key=value>, <key=value>, ...][-input <path>] [-output <path>] [-jar <jar file>][-inputformat <class>] [-map <class>] [-partitioner <class>][-reduce <class>] [-writer <class>] [-program <executable>][-reduces <num>]
命令選項                             描述

-conf <path>                             作業的配置
-jobconf <key=value>, <key=value>, ...     
增加/覆蓋作業的配置項

-input <path>                             輸入目錄

-output<path>                        輸出目錄

-jar <jar file>                     Jar文件名

-inputformat <class>                     InputFormat

-map <class>                             JavaMap

-partitioner <class>                     JavaPartitioner

-reduce <class>                     JavaReduce

-writer <class>                     JavaRecordWriter

-program <executable>                     可執行程序的URI

-reduces <num>                             reduce個數

2、用於和MapReduce作業交互和命令(jar)

用法:hadoop job[GENERIC_OPTIONS] [-submit <job-file>] | [-status <job-id>] |[-counter <job-id> <group-name> <counter-name>] | [-kill<job-id>] | [-events <job-id> <from-event-#> <#-of-events>]| [-history [all] <jobOutputDir>] | [-list [all]] | [-kill-task<task-id>] | [-fail-task <task-id>]

命令選項                                                   描述
-submit <job-file>                                           
提交作業
-status <job-id>                                            
打印mapreduce完成百分比和所有計數器。
-counter <job-id> <group-name> <counter-name>                   
打印計數器的值。
-kill <job-id>                                                   
殺死指定作業。

-events <job-id><from-event-#> <#-of-events>                   打印給定範圍內jobtracker接收到的事件細節。

-history [all] <jobOutputDir>    -history<jobOutputDir>        打印作業的細節、失敗及被殺死原因的細節。更多的關於一個作業的細節比如成功的任務,做過的任務嘗試等信息可以通過指定[all]選項查看。

-list [all]    -listall                                      顯示所有作業。-list只顯示將要完成的作業。
-kill-task <task-id>                                           
殺死任務。被殺死的任務不會不利於失敗嘗試。

-fail-task <task-id>                                           使任務失敗。被失敗的任務會對失敗嘗試不利。

3、運行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指定。

4、運行HDFS的secondarynamenode。

用法:hadoopsecondarynamenode [-checkpoint [force]] | [-geteditsize]

命令選項                            描述

-checkpoint [force]                    如果EditLog的大小 >= fs.checkpoint.size,啓動Secondarynamenode的檢查點

                                        過程。如果使用了-force,將不考慮EditLog的大小。
-geteditsize                            
打印EditLog大小。

5、運行一個HDFS的datanode

用法:hadoop datanode[-rollback]

命令選項                                      描述

-rollback                                      datanode回滾到前一個版本。這需要在停止datanode,分發老的hadoop版本之後使用。

6、運行MapReducejob Tracker節點(jobtracker)。

用法:hadoopjobtracker

7、運行MapReduce的taskTracker節點。

 用法:hadooptasktracker

8、運行HDFS文件系統檢查工具(fscktools)

用法:hadoop fsck[GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files[-blocks [-locations | -racks]]]

命令選項    描述

<path>      檢查的起始目錄。

-move            移動受損文件到/lost+found
-delete     
刪除受損文件。

-openforwrite     打印出寫打開的文件。

-files            打印出正被檢查的文件。

-blocks     打印出塊信息報告。

-locations     打印出每個塊的位置信息。

-racks            打印出data-node的網絡拓撲結構。

9、運行集羣平衡工具。管理員可以簡單的按Ctrl-C來停止平衡過程(balancer)
 用法:hadoop balancer[-threshold <threshold>]
命令選項                            描述
-threshold <threshold>                    
磁盤容量的百分比。這會覆蓋缺省的閥值。
10、獲取或設置每個守護進程的日誌級別(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>

11、支持配額:

    * fs -count -q<directory>...<directory>

      使用-q選項,會報告每個目錄設置的配額,以及剩餘配額。如果目錄沒有設置配額,會報告noneinf

12、瞭解更多,

1.         進入HADOOP_HOME目錄。

2.         執行sh bin/hadoop

我們可以看到更多命令的說明信息:

Usage: hadoop [--config confdir] COMMAND

where COMMAND is one of:

  namenode-format     format the DFS filesystem

  secondarynamenode    runthe DFS secondary namenode

  namenode             runthe DFS namenode

  datanode             runa DFS datanode

  dfsadmin             runa DFS admin client

  fsck                 runa DFS filesystem checking utility

  fs                   runa generic filesystem user client

  balancer             runa cluster balancing utility

  jobtracker           runthe MapReduce job Tracker node

  pipes                runa Pipes job

  tasktracker          runa MapReduce task Tracker node

  job                  manipulateMapReduce jobs

  queue                getinformation regarding JobQueues

  version              printthe version

  jar<jar>            runa jar file

  distcp <srcurl><desturl> copy file or directories recursively

  archive -archiveName NAME<src>* <dest> create a hadoop archive

  daemonlog            get/setthe log level for each daemon

 or

  CLASSNAME            runthe class named CLASSNAME

Most commands print help when invokedw/o parameters.

 

 

學習資料:

<hadoop命令大全>RoyceWang專欄

<HADOOP基本操作命令>逖寒的世界

<hadoop常用命令 >鑫的技術平臺

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