所有的Hadoop命令均由bin/hadoop腳本引發。不指定參數運行hadoop腳本會列印所有命令的描述。
The general command line syntax is:
► 1 常規選項:
下面的選項被dfsadmin,fs,fsck,和job支持。應用程式要實現Tool介面來支援常規選項。
► 2 用戶命令:
Hadoop集群用戶的常用命令
2.1 archive
用法1:
2.2 distcp
用法2:
2.3 fs
2.4 fsck
用法4:
2.5 jar
用戶可以把他們的Map Reduce代碼捆綁到jar檔中,使用這個命令執行
2.6 job
用法6
2.7 pipes
用法7
2.8 version
2.9 CLASSNAME
► 3 管理命令
hadoop集群管理員常用的命令。
3.1 balancer
管理員可以簡單的按Ctrl-C來停止平衡過程。
用法10:
3.2 daemonlog
用法11,,12:
3.3 datanode
3.4 dfsadmin
3.5 jobtracker
3.6 namenode
3.7 secondarynamenode
3.8 tasktracker
The general command line syntax is:
hadoop [--config confdir][COMMAND][GENERIC_OPTIONS][COMMAND_OPTIONS]
命令選項描述:
命令選項 | 說明 |
---|---|
--config confdir | 覆蓋缺省配置目錄。缺省是${HADOOP_HOME}/conf |
GENERIC_OPTIONS | 多個命令都支援的通用選項。 |
COMMAND | 各種各樣的命令被分為用戶命令和管理命令兩組。 |
Hadoop | 有一個選項解析框架用於解析一般的選項和運行類。 |
下面的選項被dfsadmin,fs,fsck,和job支持。應用程式要實現Tool介面來支援常規選項。
一般選項 | 說明 |
---|---|
-conf<configuration file> | 指定應用程式的配置檔 |
-D <property=value> | 為指定property指定值value |
-fs <local|namenode:port> | 指定namenode |
-jt <local|jobtracker:port> | 指定job tracker,只適用於job |
-files <逗號分隔的文件列表> | 指定要拷貝到map reduce集群的檔的逗號分隔的列表,只是用與job |
-libjars <逗號分隔的jar列表> | 指定要包含到classpath中的jar檔的逗號分隔的列表。 只適用於job |
-archives <逗號分隔的archive列表> | 指定要被解壓到計算節點上的檔案檔的逗號分割的列表。 只適用於job。 |
► 2 用戶命令:
Hadoop集群用戶的常用命令
2.1 archive
用法編號 | 命令樣式 | 功能 |
---|---|---|
1 | hadoop archive –archiveName <src>* <dest> | 創建一個hadoop檔案檔 |
命令選項 | 描述 |
---|---|
-archiveName | 要創建的檔案的名字 |
src | 檔系統的路徑名,和通常含正則表達的一樣 |
Dest | 保存檔案檔的目錄目標 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
2 | hadoop distcp <srcurl> <desturl> | 遞迴地複製檔或目錄 |
命令選項 | 描述 |
---|---|
srcurl | 檔或目錄的源url |
desturl | 檔或目錄的目標url |
用法編號 | 命令樣式 | 功能 |
---|---|---|
3 | hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS] | 運行一個常規的檔系統用戶端 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
4 | hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]] | 運行HDFS檔系統檢查工具 |
命令選項 | 描述 |
---|---|
<path> | 檢查的起始目錄 |
-move | 移動受損文件到/lost+found |
-delete | 刪除受損檔 |
-openforwrite | 列印出寫打開的檔 |
-files | 列印出正被檢查的檔 |
-blocks | 列印出塊資訊報告 |
-locations | 列印出每個塊的位置資訊 |
-racks | 列印出data-node的網路拓撲結構 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
5 | hadoop jar <jar> [mainClass] args | 運行jar檔 |
2.6 job
用法編號 | 命令樣式 | 功能 |
---|---|---|
6 | 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>] | 運行jar檔 |
命令選項 | 描述 |
---|---|
-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] <jobOutputDir> | -history <jobOutputDir> 列印作業的細節、失敗及被殺死原因的細節。更多的關於一個作業的細節比如成功的任務,做過的任務嘗試等資訊可以通過指定[all]選項查看。 |
-list [all] | -list all顯示所有作業。-list只顯示將要完成的作業。 |
-kill-task <task-id> | 殺死任務。被殺死的任務不會不利於失敗嘗試。 |
-fail-task <task-id> | 使任務失敗。被失敗的任務會對失敗嘗試不利。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
7 | 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>] | 運行pipes作業 |
命令選項 | 描述 |
---|---|
-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 | hadoop version | 列印版本資訊 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
9 | hadoop CLASSNAME | hadoop腳本可用於調調用任何類 |
hadoop集群管理員常用的命令。
3.1 balancer
用法編號 | 命令樣式 | 功能 |
---|---|---|
10 | hadoop balancer [-threshold <threshold>] | 運行集群平衡工具 |
用法10:
命令選項 | 描述 |
---|---|
-threshold <threshold> | 磁片容量的百分比。這會覆蓋缺省的閥值。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
11 | hadoop daemonlog -getlevel <host:port> <name> | 獲取或設置每個守護進程的日誌級別 |
12 | 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> |
用法編號 | 命令樣式 | 功能 |
---|---|---|
13 | hadoop datanode [-rollback] | 運行一個HDFS的datanode。 |
命令選項 | 描述 |
---|---|
-rollback | 將datanode回滾到前一個版本。這需要在停止datanode,分發老的hadoop版本之後使用。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
14 | 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]] | 運行一個HDFS的dfsadmin用戶端 |
命令選項 | 描述 |
---|---|
- report | 報告檔系統的基本資訊和統計資訊 |
-safemode enter| leave| get | wait enter: 進入safe mode get: 顯示系統是否進入safe mode wait: 一直等到safe mode結束 leave: 離開safe mode |
在開啟hadoop ,load namenode的時候,系統會先停在safe mode,使得data node在回報其資料完整性之前,data blocks不會提早做複製的動作。系統若在safe mode,則所有的blocks都是唯讀 (read only)屬性,不能做任何寫入或是修改。直到data node都做出正常回報之後,才會離開safe mode,進行data blocks的複製行為。 若hadoop因某些意外不正常啟動或是關閉,則系統會鎖在safe mode。使得你無法對HDFS做任何變更的動作。因此,如果你要離開safe mode,可下達以下指令:hadoop dfsadmin -safemode leave |
-refreshNodes | 重新讀取hosts和exclude檔,更新允許連到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] | 顯示給定命令的幫助資訊,如果沒有給定命令,則顯示所有命令的幫助資訊。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
15 | hadoop jobtracker | 運行MapReduce job Tracker節點 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
16 | hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint] | 運行namenode。有關升級,回滾,升級終結的更多資訊請參考升級和回滾 |
命令選項 | 描述 |
---|---|
-format | 格式化namenode。它啟動namenode,格式化namenode,之後關閉namenode。 |
-upgrade | 分發新版本的hadoop後,namenode應以upgrade選項啟動。 |
-rollback | 將namenode回滾到前一版本。這個選項要在停止集群,分發老的hadoop版本後使用。 |
-finalize | finalize會刪除檔系統的前一狀態。最近的升級會被持久化,rollback選項將再不可用,升級終結操作之後,它會停掉namenode。 |
-importCheckpoint | 從檢查點目錄裝載鏡像並保存到當前檢查點目錄,檢查點目錄由fs.checkpoint.dir指定。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
17 | hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize] | 運行HDFS的secondary namenode。 |
命令選項 | 描述 |
---|---|
-checkpoint [force] | 如果EditLog的大小 >= fs.checkpoint.size,啟動Secondary namenode的檢查點過程。 如果使用了-force,將不考慮EditLog的大小。 |
-geteditsize | 列印EditLog大小。 |
用法編號 | 命令樣式 | 功能 |
---|---|---|
18 | hadoop tasktracker | 運行MapReduce的task Tracker節點 |