概要:
所有的
hadoop
命令都援引于
bin/hadoop
脚本,不加任何参数的运行
Hadoop
脚本命令,打印出来所有命令的描述信息。
Usage:
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Hadoop
采用解析通用选项和运行类的解析框架。
COMMAND_OPTION | Description |
--config confdir | 重新设置默认的配置路径,默认的是$HADOOP_HOME/conf |
GENERIC_OPTIONS
COMMAND_OPTIONS
|
包含选项的命令集合,⽀支持多种命令。在下⾯面的章节中描
述各种命令和它们的选项。这些命令被分为⽤用户命令和管
理员命令。
|
通⽤选项:
COMMAND_OPTION | Description |
-conf <configuration file> | 指定应用程序的配置文件 |
-D <property>=<value> | 使用给定的属性值 |
-jt <local> or <jobtracker:port> | 指定一个jobtracker。仅适用于job |
-files <comma separated list of files> | 指定逗号来分隔将要被复制到map reduce集群文件。仅适用于job |
-libjars <comma seperated list of jars> | 指定逗号来分隔将在classpath里面引用的jar文件。仅适用于job。 |
-archives <comma separated list of archives> | 指定要在计算机未归档以逗号分隔的档案,仅适用于job。 |
用户态命令:
- archive
-
- 创建一个hadoop归档文件
- Usage: hadoop archive -archiveName NAME <src>* <dest>
COMMAND_OPTION
|
Description
|
-archiveName NAME | 将被创建的档案的名字 |
src | 文件系统路径名,像通常一样,和正则表达式一起用 |
dest | 将要包含文档的目的路径。 |
- distcp
-
- 复制文件或目录递归。更多的信息可以在Hadoop distcp指南。
- Usage: hadoop distcp <srcurl> <desturl>
COMMAND_OPTION | Description |
srcurl | Source Url |
desturl | Destination Url |
- fs
-
- Usage: hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS]
- 请使用:hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS] 替代
- fsck
-
- 运行一个HDFS文件系统检查工具。详情请见fsck
- Usage: hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
COMMAND_OPTION | Description |
path | 从这个路径开始检查 |
-move | 移动损坏的文件到/lost+found |
-delete | 删除损坏了的文件 |
-openforwrite | 可写文件 |
-files | 被检查的文件 |
-blocks | 块报告 |
-locations | 块所在位置 |
-racks | 打印出数据的节点位置的网络拓扑结构 |
- fetchdt
-
- 从一个NameNode节点获取授权令牌。获取详情fetchdt
- Usage: hadoop fetchdt [GENERIC_OPTIONS] [--webservice <namenode_http_addr>] <path>
COMMAND_OPTION | Description |
fileName | 存储令牌的文件名 |
--webservice https_address | 使用http协议来替代RPC |
- jar
-
- 使用这个命令运行MR Job
- Usage: hadoop jar <jar> [mainClass] args...
- job
-
- 影响MR Job的命令
- Usage: 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>] | [-set-priority <job-id> <priority>]
COMMAND_OPTION | Description |
-submit job-file | 提交一个job |
-status job-id | 打印map and reduce完成百分比和所有工作计数器 |
-counter job-id group-namecounter-name | 打印计数器名字 |
-kill job-id | 杀死一个job |
-events job-id from-event-# #-of-events | 打印指定范围内JobTracker接收到的事件细节 |
-history [all]jobOutputDir | 打印Job更多细节 |
-list [all] | 显示还没有完成的jobs 加上 –list 可以显示所有的jobs |
-kill-task task-id | 杀死task |
-fail-task task-id | 使task失败 |
-set-priority job-id priority | 改变job的优先级。允许优先级值是VERY_HIGH, HIGH, NORMAL, LOW, VERY_LOW |
- pipes
-
- 运行一个管道job
- Usage: 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>]
COMMAND_OPTION | Description |
-conf path | job的配置信息 |
-jobconf key=value, key=value, ... | 增加和重写job的配置信息 |
-input path | Input directory |
-output path | Output directory |
-jar jar file | Jar filename |
-inputformat class | InputFormat class |
-map class | Java Map class |
-partitioner class | Java Partitioner |
-reduce class | Java Reduce class |
-writer class | Java RecordWriter |
-program executable | Executable URI |
-reduces num | Number of reduces |
- queue
-
- Usage: hadoop queue [-list] | [-info <job-queue-name> [-showJobs]] | [-showacls]
- 与job队列交互和查看作业队列信息的命令
COMMAND_OPTION | Description |
-list | 获取系统中配置的job队列的列表,还有和job队列相关的进度信息 |
-info job-queue-name [-showJobs] | 显示job队列的信息和特定job队列的相关的调度信息。如果-showJobs选项是目前显示列表提交到特定的工作队列的工作。 |
-showacls | 显示队列名称和相关的队列操作允许当前用户。列表只包含那些排队的用户有权访问的。 |
- CLASSNAME
-
- hadoop脚本可用于调调用任何类。
- 用法:hadoop CLASSNAME
- 运行名字为CLASSNAME的类。
- classpath
-
- 打印为获取Hadoop jar所需的class path和所需要的库类。
- Usage: hadoop classpath
- 打印为获取Hadoop jar所需的class path和所需要的库类。
管理命令
:
hadoop集群管理员常用的命令
。
- balancer
-
- 运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程。参考Rebalancer了解更多。
- Usage: hadoop balancer [-threshold <threshold>] [-policy <policy>]
COMMAND_OPTION | Description |
-threshold threshold | 磁盘容量的百分比。这将覆盖默认阈值。 |
-policy policy |
datanode (default): Cluster is balanced if each datanode is balanced.
blockpool: Cluster is balanced if each block pool in each datanode is balanced.
|
请注意,blockpool策略比datanode政策更加严格。
- daemonlog
-
- 获取或设置每个守护进程的日志级别。
- 用法:hadoop daemonlog -getlevel <host:port> <name>
- 用法:hadoop daemonlog -setlevel <host:port> <name> <level>
COMMAND_OPTION | Description |
-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> |
- datanode
-
- 运行一个HDFS的datanode。
- 用法:hadoop datanode [-rollback]
COMMAND_OPTION | Description |
-rollback | 将datanode回滚到前一个版本。这需要在停止datanode,分发老的hadoop版本之后使用。 |
- dfsadmin
-
- 运行一个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]]
COMMAND_OPTION | Description |
-report | 报告文件系统的基本信息和统计信息。 |
-safemode enter | leave | get | wait |
安全模式维护命令。安全模式是Namenode的一个状态,这种状态下,Namenode
1. 不接受对名字空间的更改(只读)
2. 不复制或删除块
Namenode会在启动时自动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自动离开安全模式。安全模式可以手动进入,但是这样的话也必须手动关闭安全模式。
|
-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. 用户不是管理员。
如果目录原来没有配额不会报错。
|
-restoreFailedStorage true / false / check | 该选项将打开/关闭自动尝试恢复失败的存储副本。如果一个失败的存储重新变得可用,系统将在检查点试图恢复编辑和/或fsimage。” check”选项将恢复当前设置。 |
-help [cmd] | 显示给定命令的帮助信息,如果没有给定命令,则显示所有命令的帮助信息。 |
- mradmin
-
- Runs MR admin client
- Usage: hadoop mradmin [ GENERIC_OPTIONS ] [-refreshQueueAcls]
COMMAND_OPTION | Description |
-refreshQueueAcls | Hadoop用来刷新队列ACL,检查用户访问提交和管理的job。在mapred-queue-acls.xml的属性由队列管理器重载。 |
- jobtracker
-
- 运行MapReduce job Tracker节点。
- Usage: hadoop jobtracker [-dumpConfiguration]
- 运行MapReduce job Tracker节点。
COMMAND_OPTION | Description |
-dumpConfiguration | 将使用的JobTracker随着队列配置JSON格式的JobTracker和出口使用标准输出配置。 |
- namenode
-
- 运行namenode。有关升级,回滚,升级终结的更多信息请参考升级和回滚。
- 用法:hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint]
COMMAND_OPTION | Description |
-format | 格式化namenode。它启动namenode,格式化namenode,之后关闭namenode。 |
-upgrade | 分发新版本的hadoop后,namenode应以upgrade选项启动。 |
-rollback | 将namenode回滚到前一版本。这个选项要在停止集群,分发老的hadoop版本后使用。 |
-finalize | finalize会删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用,升级终结操作之后,它会停掉namenode。 |
-importCheckpoint | 从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定。 |
- secondarynamenode
-
- 运行HDFS的secondary namenode。参考Secondary Namenode了解更多。
- 用法:hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize]
COMMAND_OPTION | Description |
-checkpoint [force] | 如果EditLog的大小 >= fs.checkpoint.size,启动Secondary namenode的检查点过程。 如果使用了-force,将不考虑EditLog的大小。 |
-geteditsize | 打印EditLog大小。 |
- tasktracker
-
- 运行MapReduce的task Tracker节点。
- 用法:hadoop tasktracker