翻译: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html
版本: 2.9.0
概览
所有hadoop命令都由 bin/hadoop 脚本调用。运行不带任何参数的hadoop 将打印所有命令的描述。
Usage: hadoop [--config confdir] [--loglevel loglevel] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Field | 描述 |
---|---|
--config confdir | 覆盖默认的配置文件目录。缺省值是 ${HADOOP_HOME}/conf。 |
--loglevel loglevel | 覆盖日志级别。有效的日志级别是FATAL, ERROR, WARN, INFO, DEBUG, and TRACE。默认是INFO。 |
GENERIC_OPTIONS | 命令支持的一组常用选项。 |
COMMAND_OPTIONS | 本文档介绍了Hadoop公共子项目的各种命令及其选项。HDFS和YARN的命令在其他文件中描述。 |
通用选项GENERIC_OPTIONS
许多子命令都遵循一组通用配置选项来改变它们的行为:
GENERIC_OPTION | 描述 |
---|---|
-archives <comma separated list of archives> | 指定要在计算机上取消存档的用逗号分隔的存档列表。仅适用于job。 |
-conf <configuration file> | 指定应用程序配置文件。 |
-D <property>=<value> | 使用给定属性的值。 |
-files <comma separated list of files> | 指定要复制到集群上的文件列表。仅适用于job。 |
-fs <file:///> or <hdfs://namenode:port> | 指定要使用的默认文件系统URL。覆盖配置中的'fs.defaultFS'属性。 |
-jt <local> or <resourcemanager:port> | 指定一个ResourceManager。仅适用于job。 |
-libjars <comma seperated list of jars> | 指定类路径中包含的用逗号分隔的jar文件列表。仅适用于job。 |
Hadoop通用命令
所有这些命令都是从 hadoop shell命令执行的。它们已被分解为用户命令和管理员命令。
用户命令
hadoop集群用户使用的命令。
archive
创建一个hadoop存档。更多信息可以在Hadoop Archives Guide中找到。
checknative
Usage: hadoop checknative [-a] [-h]
命令选项 | 描述 |
---|---|
-a | 检查所有库是否可用。 |
-h | 打印帮助 |
该命令检查Hadoop本机代码的可用性。查看本地Libaries了解更多信息。默认情况下,该命令仅检查libhadoop的可用性。
classpath
Usage: hadoop classpath [--glob |--jar <path> |-h |--help]
命令选项 | 描述 |
---|---|
--glob | 扩展通配符 |
--jar path | 以jar的路径名作为manifest写入classpath |
-h, --help | 打印帮助 |
打印获取Hadoop jar和所需库所需的类路径。如果不带参数调用,则打印由命令脚本设置的类路径,该类路径很可能在类路径条目中包含通配符。其他选项在通配符扩展后打印类路径,或将类路径写入jar文件的清单。后者在不能使用通配符且扩展类路径超过支持的最大命令行长度的环境中非常有用。
credential
Usage: hadoop credential <subcommand> [options]
命令选项 | 描述 |
---|---|
create alias [-provider provider-path] [-strict] [-value credential-value] | 为用户将凭证存储为给定的别名。若不指定-provider,则core-site.xml文件中的 hadoop.security.credential.provider.path 将被使用。当使用-strict 时,如果提供者使用默认密码 将导致命令失败。使用 -value 标志提供凭证值(又名别名密码)。 |
delete alias [-provider provider-path] [-strict] [-f] | 删除别名对应的凭证。若不指定-provider ,则core-site.xml文件中的hadoop.security.credential.provider.path将被使用。-strict标志不允许使用默认密码。该命令要求确认,除非使用-f |
list [-provider provider-path] [-strict] | 列出所有的凭证的别名。当不指定-provider时,core-site.xml文件中的 hadoop.security.credential.provider.path将被使用。如果使用-strict,则使用默认密码将失败。 |
用于管理凭证,密码和secrets的命令。
使用Hadoop中的CredentialProvider API使得应用程序与密码的存储相分离。为了指示特定的提供者类型和位置,用户必须在core-site.xml中提供hadoop.security.credential.provider.path,或者在以下每个命令中使用命令行选项 -provider 。此路径是一个以逗号分隔的URL列表,用于指示可供使用类型和位置。例如,以下路径:user:///,jceks://file/tmp/test.jceks,jceks://hdfs@nn1.example.com/my/path/test.jceks 。 表示当前用户的凭证文件通过上述路径提供,位于<tt>/tmp/test.jceks</tt>的本地文件是Java Keystore Provider,位于HDFS的<tt>nn1.example.com/my/path/ test.jceks</tt>也是Java Keystore Provider。
在使用凭证命令时,通常会将密码或秘密提供给特定的凭证存储提供者。使用<tt>-provider</tt>选项来明确使用哪个提供商商店。否则,当给定多个提供者时,将使用第一个非暂时提供者。这可能是也可能不是你想要的。
供应商经常要求提供密码或其他机密。如果提供者需要密码并且找不到密码,它将使用默认密码并发出警告消息,指出正在使用默认密码。如果提供了<tt>-strict</tt>标志,则警告消息将成为错误消息,并且该命令立即返回错误状态。
例如:hadoop credential list -provider jceks://file/tmp/test.jceks
distcp
递归复制文件或目录。更多信息可以在Hadoop DistCp指南中找到。
fs
该命令记录在“ 文件系统Shell指南”中。它是使用HDFS时 hdfs dfs 的同义词。
jar
用法:hadoop jar <jar> [mainClass] args...
运行一个jar文件。
使用yarn jar来启动YARN应用程序。
key
用法:hadoop key <subcommand> [options]
命令选项 | 描述 |
---|---|
create keyname [-cipher cipher] [-size size] [-description description] [-attr attribute=value] [-provider provider] [-strict] [-help] | 使用指定的名称创建一个新的密钥,当使用-provider时,使用指定的提供者。如果使用-strict,则用默认密码将导致命令失败。您可以使用-cipher 参数指定一个密码。默认密码当前是“AES / CTR / NoPadding”。默认密钥大小是128.您可以使用 -size 参数指定请求的密钥长度。可以使用-attr参数指定任意属性=值样式属性。 -attr 可以多次指定,每个属性一次。 |
roll keyname [-provider provider] [-strict] [-help] | 创建指定秘钥的新版本,使用-provider 参数指定提供者。如果使用-strict,则用默认密码将导致命令失败。 |
delete keyname [-provider provider] [-strict] [-f] [-help] | 删除指定的秘钥。该命令要求用户确认,除非指定 -f。 |
list [-provider provider] [-strict] [-metadata] [-help] | 显示在core-site.xml中配置的或使用<tt>-provider</tt>参数指定的特定提供者包含的键名。 -metadata 显示元数据。 |
-help | 打印此命令的用法 |
通过KeyProvider管理密钥。有关KeyProviders的详细信息,请参阅“ 透明加密指南”。
provider要求提供密码或其他机密。如果提供者需要密码并且找不到密码,它将使用默认密码并发出警告消息,指出正在使用默认密码。如果提供了<tt>-strict</tt>标志,则警告消息将成为错误消息,并且该命令立即返回错误状态。
注意:一些KeyProvider(例如org.apache.hadoop.crypto.key.JavaKeyStoreProvider)不支持大写键名称。
注意:某些KeyProviders不直接执行密钥删除(例如,执行软删除,或延迟实际删除,以防止出现错误)。在这些情况下,在创建/删除具有相同名称的密钥后,删除它时可能会遇到错误。详情请查看底层的KeyProvider。
trace
查看和修改Hadoop跟踪设置。请参阅跟踪指南。
version
用法:hadoop version
打印版本。
CLASSNAME
用法: hadoop CLASSNAME
运行名为 CLASSNAME 的类。
envvars
用法: hadoop envvars
显示计算出的Hadoop环境变量。
管理员命令
对hadoop集群管理员有用的命令。
daemonlog
用法:
hadoop daemonlog -getlevel <host:port> <classname> [-protocol (http|https)]
hdoop daemonlog -setlevel <host:port> <classname> <level> [-protocol (http|https)]
命令选项 | 描述 |
---|---|
-getlevel host:port classname [-protocol (http or https)] | 在host:port运行的守护程序中打印由限定类名标识的日志的日志级别。 -protocol 标志指定用于连接的协议。 |
-setlevel host:port classname level [-protocol (http or https)] | 设置由host:port运行的守护进程中由限定类名标识的日志的日志级别。 -protocol 标志指定用于连接的协议。 |
在守护进程中动态获取/设置由限定类名标识的类的日志的级别。默认情况下,该命令发送一个HTTP请求,但可以通过使用参数<tt>-protocol https</tt>来发送HTTPS请求来覆盖。
例:
$ bin/hadoop daemonlog -setlevel 127.0.0.1:50070 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG
$ bin/hadoop daemonlog -getlevel 127.0.0.1:50470 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG -protocol https
请注意,该设置不是永久的,并且在守护程序重新启动时将被重置。该命令通过向守护程序的内部Jetty servlet发送HTTP / HTTPS请求来工作,因此它支持以下守护程序:
HDFS
name node
secondary name node
data node
journal node
YARN
resource manager
node manager
Timeline server
但是,该命令不支持KMS服务器,因为其Web接口基于Tomcat, 不支持servlet。