@changedi
2016-10-05T16:54:45.000000Z
字数 3576
阅读 5669
大数据
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 | 被多个命令支持的通用选项集。具体下面有讲述。 |
下面的选项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集群操作有用的用户命令。
创建一个hadoop归档。更多信息参见 Hadoop Archives Guide。
根据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将被使用。 |
递归的拷贝文件或目录。更多信息参见 Hadoop DistCp Guide。
Deprecated,用hdfs dfs替换。
Deprecated,使用hdfs fsck替换。
Deprecated,使用hdfs fetchdt替换。
运行一个jar文件。用户可以打包他们的Map Reduce代码到一个jar文件,然后利用如下命令执行。
Usage: hadoop jar <jar> [mainClass] args...
流式的作业通过这个命令运行。例子参见Streaming examples。
Word count 示例也是使用jar命令运行的。可以参考Wordcount example。
Deprecated. 用mapred job替换。
Deprecated. 用mapred pipes替换。
Deprecated. 用mapred queue替换。
打印版本信息。
Usage: hadoop version
hadoop脚本可以用来调用任何class。
Usage: hadoop CLASSNAME
运行一个叫做CLASSNAME的class。
打印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集群的管理员常用的命令。
Deprecated, 使用hdfs balancer替换。
为每个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 |
Deprecated, 使用hdfs datanode替换
Deprecated, 使用 hdfs dfsadmin 替换。
Deprecated, 使用 hdfs namenode 替换。
Deprecated, 使用 hdfs secondarynamenode 替换。