[关闭]
@changedi 2016-10-05T16:54:45.000000Z 字数 3576 阅读 5669

Hadoop命令大全

大数据 Hadoop



概述

所有的Hadoop命令都是被bin/hadoop脚本来调起的。直接无参数的运行hadoop脚本会打印出所有命令的描述。

Usage: hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

Hadoop有一个命令选项解析框架,提供像运行class一样的generic选项解析功能。

COMMAND_OPTION 描述
--config confdir 覆盖默认的配置目录。默认是 $HADOOP_HOME/conf.
GENERIC_OPTIONS COMMAND_OPTIONS 被多个命令支持的通用选项集。具体下面有讲述。

Generic Options

下面的选项dfsadmin, fs, fsck, job 和 fetchdt命令都支持。应用需要实现工具来支持GenericOption。

GENERIC_OPTION 描述
-conf <configuration file> 指定一个应用程序配置文件。
-D <property>=<value> 使用指定的property值。
-jt <local> or <resourcemanager:port> 指定ResourceManager。只对作业有效。
-files <comma separated list of files> 指定逗号分隔的多个文件,这些文件会被拷贝到map reduce集群。只对作业有效。
-libjars <comma seperated list of jars> 指定逗号分隔的多个jar文件,用来声明classpath。只对作业有效。
-archives <comma separated list of archives> 指定逗号分隔的归档文件用来归档。只对作业有效。

用户命令

Hadoop集群操作有用的用户命令。

archive

创建一个hadoop归档。更多信息参见 Hadoop Archives Guide。

credential

根据credential providers管理credentials, passwords 和 secrets。

Hadoop的CredentialProvider API允许应用程序隔离存储它们自己的passwords/secrets。未来确定一个特定的provider类型和地址,用户必须在core-site.xml配置hadoop.security.credential.provider.path,或者在命令行给下面提到的每个命令加一个选项 -provider。provider路径是一个逗号分隔的URL列表,这些url声明provider的类型和位置。比如如下的路径:

user:///,jceks://file/tmp/test.jceks,jceks://hdfs@nn1.example.com/my/path/test.jceks

声明了当前用户的credential文件要访问的provider,包括User Provider,本地文件/tmp/test.jceks——一个Java Keystore Provider,HDFS文件nn1.example.com/my/pay/test.jceks——这里同样是一个Java Keystore Provider。

当应用credential命令时会要求提供一个password或者secret给到特定的credential store provider。为了显式指明哪个provider store,-provider选项需要提供。否则给定一个包含多个provider的路径,第一个non-transient provider将启用。

Example: -provider jceks://file/tmp/test.jceks

Usage: hadoop credential <subcommand> [options]
COMMAND_OPTION 描述
create alias [-v value][-provider provider-path] 提示用户给一个即将被存储的credential创建一个别名。如果-provider没有指明,那么core-site.xml里的hadoop.security.credential.provider.path将被使用。
delete alias [-i][-provider provider-path] 删除credential,根据指定的别名,当-i参数提供时,会有用户选择界面。如果-provider没有指明,那么core-site.xml里的hadoop.security.credential.provider.path将被使用。
list [-provider provider-path] 列出所有的credential别名。如果-provider没有指明,那么core-site.xml里的hadoop.security.credential.provider.path将被使用。

distcp

递归的拷贝文件或目录。更多信息参见 Hadoop DistCp Guide。

fs

Deprecated,用hdfs dfs替换。

fsck

Deprecated,使用hdfs fsck替换。

fetchdt

Deprecated,使用hdfs fetchdt替换。

jar

运行一个jar文件。用户可以打包他们的Map Reduce代码到一个jar文件,然后利用如下命令执行。

Usage: hadoop jar <jar> [mainClass] args...

流式的作业通过这个命令运行。例子参见Streaming examples。

Word count 示例也是使用jar命令运行的。可以参考Wordcount example。

job

Deprecated. 用mapred job替换。

pipes

Deprecated. 用mapred pipes替换。

queue

Deprecated. 用mapred queue替换。

version

打印版本信息。

Usage: hadoop version

CLASSNAME

hadoop脚本可以用来调用任何class。

Usage: hadoop CLASSNAME

运行一个叫做CLASSNAME的class。

classpath

打印class路径,包含了获取Hadoop jar文件和需要的库的路径。如果无参数的调用,那么打印命令脚本本身的类路径,这些路径可能包含了一些占位符。额外的选项可以在占位符后打印classpath,或者将classpath写入jar文件的manifest。后者在占位符不可用的环境很有用,可以扩展类路径来满足命令行长度的限制。

Usage: hadoop classpath [--glob|--jar <path>|-h|--help]
COMMAND_OPTION 描述
--glob 扩展的占位符(wildcard)
--jar path 把classpath作为manifest写入path对应的jar文件。
-h, --help 打印帮助信息

管理命令

管理hadoop集群的管理员常用的命令。

balancer

Deprecated, 使用hdfs balancer替换。

daemonlog

为每个hadoop程序Get/Set日志等级。

Usage: hadoop daemonlog -getlevel <host:port> <name> 
Usage: hadoop daemonlog -setlevel <host:port> <name> <level>
COMMAND_OPTION 描述
-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

Deprecated, 使用hdfs datanode替换

dfsadmin

Deprecated, 使用 hdfs dfsadmin 替换。

namenode

Deprecated, 使用 hdfs namenode 替换。

secondarynamenode

Deprecated, 使用 hdfs secondarynamenode 替换。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注