Hadoop3.2.0 Hadoop 命令指南

Hadoop命令指南

  • 概览
    • Shell 选项
    • Generic 选项
  • User Commands  用户命令
    • archive
    • checknative
    • classpath
    • conftest
    • credential
    • distch
    • distcp
    • dtutil
    • fs
    • gridmix
    • jar
    • jnipath
    • kerbname
    •  
    • kdiag
    • key
    • kms
    • trace
    • version
    • CLASSNAME
    • envvars
  • Administration Commands   管理员命令
    • daemonlog
  • Files 文件
    • etc/hadoop/hadoop-env.sh
    • etc/hadoop/hadoop-user-functions.sh
    • ~/.hadooprc

概览

所有Hadoop命令和子项目都遵循相同的基本结构:

用法:shellcommand [SHELL_OPTIONS] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

领域 描述
shellcommand 正在调用项目的命令。例如,Hadoop常用的是hadoop,HDFS使用hdfs,而YARN使用yarn。
SHELL_OPTIONS shell在执行Java之前处理的选项。
COMMAND 要采取的行动。
GENERIC_OPTIONS 多个命令支持的通用选项集。
COMMAND_OPTIONS 本文档中介绍了Hadoop公共子项目的各种命令及其选项。HDFS和YARN包含在其他文档中。

Shell选项

所有shell命令都将接受一组通用选项。对于某些命令,将忽略这些选项。例如,在仅在单个主机上执行的命令上传递--- hostnames将被忽略。

SHELL_OPTION 描述
--buildpaths 启用jar的开发人员版本。
--config confdir 覆盖默认的Configuration目录。默认值是$HADOOP_HOME/etc/hadoop.
--daemon mode 如果该命令支持守护进程(例如,hdfs namenode),则以适当的模式执行。支持的模式开始启动进程守护进程方式,停止,停止的过程中,状态确定过程的工作状态。status将返回   LSB-compliant 结果代码。如果未提供任何选项,则支持守护程序的命令将在前台运行。对于不支持守护程序的命令,将忽略此选项。
--debug 启用shell级配置调试信息
- help Shell脚本使用信息。
--hostnames 使用--workers时,使用以空格分隔的主机名列表覆盖workers文件,以执行多主机子命令。如果未使用--workers,则忽略此选项。
--hosts 使用--workers时,使用另一个文件覆盖workers文件,该文件包含要在其中执行多主机子命令的主机名列表。如果未使用--workers,则忽略此选项。
--lllvelvel loglevel 覆盖日志级别。有效的日志级别为FATAL,ERROR,WARN,INFO,DEBUG和TRACE。默认为INFO。
--workers 如果可能,请在workers文件中的所有主机上执行此命令。

通用选项

许多子命令都支持一组通用的配置选项来改变它们的行为:

GENERIC_OPTION 描述
-archives <逗号分隔的归档列表> 指定要在计算机上取消存档的逗号分隔存档。仅适用于工作。
-conf <配置文件> 指定应用程序配置文件。
-D = 使用给定属性的值。
-files <逗号分隔的文件列表> 指定要复制到地图缩减群集的逗号分隔文件。仅适用于工作。
-fs 指定要使用的默认文件系统URL。从配置覆盖'fs.defaultFS'属性。
-jt 指定ResourceManager。仅适用于工作。
-libjars <逗号分隔的jar列表> 指定要包含在类路径中的逗号分隔的jar文件。仅适用于工作。

Hadoop常用命令

所有这些命令都是从hadoop shell命令执行的。它们已被分解为用户命令和管理命令。

用户命令

对hadoop集群的用户有用的命令。

 

档案

创建一个hadoop存档。可以在Hadoop Archives Guide中找到更多信息。

checknative

用法:hadoop checknative [-a] [-h]

命令选项 描述
-a 检查所有库是否可用。
-H 打印帮助

此命令检查Hadoop本机代码的可用性。有关更多信息,请参阅Native Libaries。默认情况下,此命令仅检查libhadoop的可用性。

类路径

用法:hadoop classpath [--glob | --jar | -h | --help]

命令选项 描述
--glob 扩展通配符
-- jar path 将类路径写为jar命名路径中的清单
-h, - help 打印帮助

打印获取Hadoop jar和所需库所需的类路径。如果不带参数调用,则打印由命令脚本设置的类路径,该脚本可能在类路径条目中包含通配符。其他选项在通配符扩展后打印类路径,或将类路径写入jar文件的清单中。后者在无法使用通配符且扩展类路径超过支持的最大命令行长度的环境中非常有用。

conftest

用法:hadoop conftest [-conffile ] ...

命令选项 描述
-conffile 要验证的配置文件或目录的路径
-h, - help 打印帮助

验证配置XML文件。如果未指定-conffile选项,则将验证名称以.xml结尾的$ {HADOOP_CONF_DIR}中的文件。如果指定,将验证该路径。您可以指定文件或目录,如果指定了目录,则将验证名称以.xml结尾的该目录中的文件。您可以多次指定-conffile选项。

验证相当小:解析XML并检查重复和空属性名称。该命令不支持XInclude; 如果您使用它来提取配置项,它将声明XML文件无效。

credential

用法:hadoop credential [options]

命令选项 描述
create alias [-provider provider-path] [-strict] [-value credential-value] Prompts the user for a credential to be stored as the given alias. The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated. The -strict flag will cause the command to fail if the provider uses a default password. Use -value flag to supply the credential value (a.k.a. the alias password) instead of being prompted.
delete alias [-provider provider-path] [-strict] [-f] Deletes the credential with the provided alias. The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated. The -strict flag will cause the command to fail if the provider uses a default password. The command asks for confirmation unless -f is specified
list [-provider provider-path ] [-strict] Lists all of the credential aliases The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated. The -strict flag will cause the command to fail if the provider uses a default password.

用于管理凭据提供程序中的凭据,密码和机密的命令。

Hadoop中的CredentialProvider API允许分离应用程序以及它们如何存储所需的密码/秘密。为了指示特定的提供程序类型和位置,用户必须在core-site.xml中提供hadoop.security.credential.provider.path配置元素,或者对以下每个命令使用命令行选项-provider。此提供程序路径是以逗号分隔的URL列表,用于指示应查阅的提供程序列表的类型和位置。例如,以下路径:user:///,jceks://file/tmp/test.jceks,jceks://[email protected]/my/path/test.jceks

表示应通过用户提供程序查询当前用户的凭证文件,位于/tmp/test.jceks的本地文件是Java密钥库提供程序,该文件位于HDFS中的nn1.example.com/my/path/ test.jceks也是Java Keystore Provider的商店。

当使用凭证命令时,它通常用于向特定凭证存储提供商提供密码或秘密。为了明确指出要使用哪个提供者存储,应该使用-provider选项。否则,给定多个提供者的路径,将使用第一个非瞬态提供者。这可能是也可能不是你想要的那个。

提供商经常要求提供密码或其他秘密。如果提供程序需要密码但无法找到密码,它将使用默认密码并发出警告消息,指出正在使用默认密码。如果提供了-strict标志,则警告消息将成为错误消息,并且该命令将立即返回错误状态。

示例: hadoop credential list -provider jceks://file/tmp/test.jceks 

distch

用法:hadoop distch [-f urilist_url] [-i] [-log logdir] path:owner:group:permissions

命令选项 描述
-F 要更改的对象列表
-i 忽略失败
-log 用于记录输出的目录

一次更改许多文件的所有权和权限。

DistCp使用

递归复制文件或目录。有关详细信息,请参阅Hadoop DistCp指南。

dtutil

用法:

hadoop dtutil [-keytab keytab_file -principal principal_name ] subcommand [-format (java|protobuf)] [-alias alias ] [-renewer renewer ] filename…

 

用于获取和管理凭证文件内的hadoop委托令牌的实用程序。它旨在取代更简单的命令fetchdt。有多个子命令,每个子命令都有自己的标志和选项。

对于写出文件的每个子命令,-format选项将指定要使用的内部格式。 java是与fetchdt匹配的遗留格式。默认为protobuf。

对于连接到服务的每个子命令,提供了便利标志来指定用于auth的kerberos主体名称和keytab文件。

SUBCOMMAND 描述
print 
   [-alias alias 
   filename filename2 ...]
打印出filename(和filename2 ...)中包含的标记中的字段。
如果指定了别名,则仅打印与别名匹配的标记。否则,打印所有令牌。
get URL 
   [-service scheme 
   [-format(java | protobuf)] 
   [-alias alias 
   [-renewer renewer 
   filename
URL处的服务获取令牌并将其放在文件名中
URL是必需的,必须紧跟get。
URL是服务URL,例如hdfs:// localhost:9000
别名将覆盖令牌中的服务字段。
它适用于具有外部和内部名称的主机,例如firewall.com:14000
filename应该是最后一个,是令牌文件的名称。
如果它不存在,它将被创建。否则,令牌将添加到现有文件中。
该-service标志只能与开始的URL使用HTTP或https。
以下是等效的:hdfs:// localhost:9000 / vs. http:// localhost:9000 -service hdfs
append 
   [-format(java | protobuf)] 
   filename filename2 filename3 ...]
将前N个文件名的内容附加到最后一个文件名。
当具有公共服务字段的令牌存在于多个文件中时,早期文件的令牌将被覆盖。
也就是说,始终保留最后一个文件中存在的标记。
remove -alias alias 
   [-format (java|protobuf)] 
   filename [ filename2 ...]
从指定的每个文件中删除与别名匹配的别名,并使用指定的格式写出每个文件。
别名必须指定。
cancel -alias alias 
   [-format (java|protobuf)] 
   filename [ filename2 ...]
就像删除一样,除了令牌也使用令牌对象中指定的服务取消。
别名必须指定。
renew -alias alias 
   [-format (java|protobuf)] 
   filename [ filename2 ...]
对于指定的每个文件,请更新匹配别名的标记,并使用指定的格式写出每个文件。
别名必须指定。

fs

“ 文件系统Shell指南”中介绍了此命令。当HDFS正在使用时,它是hdfs dfs的同义词。

gridmix

Gridmix是Hadoop集群的基准工具。可以在Gridmix指南中找到更多信息。

jar

用法:hadoop jar [mainClass] args ...

运行一个jar文件。

使用yarn jar 来代替启动YARN应用程序。

jnipath

用法:hadoop jnipath

打印计算出的java.library.path。

kerbname

用法:hadoop kerbname principal

通过auth_to_local规则将命名主体转换为Hadoop用户名。

示例:hadoop kerbname [email protected]

kdiag

用法:hadoop kdiag

诊断Kerberos问题

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] 从-provider指定的提供程序中删除keyname参数指定的所有密钥版本。该-strict标志将导致如果提供商使用默认密码的命令失败。除非指定了-f,否则该命令会要求用户确认。
list [ -provider provider ] [-strict] [-metadata] [-help] 显示在core-site.xml中配置或使用-provider参数指定的特定提供程序中包含的键名。该-strict标志将导致如果提供商使用默认密码的命令失败。-metadata显示元数据。
-help 打印此命令的用法

通过KeyProvider管理密钥。有关KeyProviders的详细信息,请参阅“ 透明加密指南”。

提供商经常要求提供密码或其他秘密。如果提供程序需要密码但无法找到密码,它将使用默认密码并发出警告消息,指出正在使用默认密码。如果提供了-strict标志,则警告消息将成为错误消息,并且该命令将立即返回错误状态。

注意:某些KeyProviders(例如org.apache.hadoop.crypto.key.JavaKeyStoreProvider)不支持大写键名称。

注意:某些KeyProviders不直接执行密钥删除(例如,执行软删除,或延迟实际删除,以防止错误)。在这些情况下,删除后创建/删除具有相同名称的密钥时可能会遇到错误。有关详细信息,请查看基础KeyProvider。

kms

用法:hadoop kms

运行密钥管理服务器KMS。

trace

查看和修改Hadoop跟踪设置。请参阅“ 跟踪指南”。

version

用法:hadoop version

打印版本。

CLASSNAME

用法:hadoop CLASSNAME

运行名为CLASSNAME的类。该类必须是包的一部分。

envvars

用法:hadoop envvars

显示计算的Hadoop环境变量。

管理命令

对hadoop集群的管理员命令。

daemonlog

用法:

hadoop daemonlog -getlevel   [-protocol (http|https)]
hadoop daemonlog -setlevel    [-protocol (http|https)]
命令选项 描述
-getlevel host:port classname [-protocol(httphttps)] host:port运行的守护程序中打印由限定类名标识的日志的日志级别。所述-protocol标志指定用于连接的协议。
-sevelvel host:port classname level [-protocol(httphttps)] 设置在host:port运行的守护程序中由限定类名标识的日志的日志级别。所述-protocol标志指定用于连接的协议。

获取/设置守护程序中由限定类名称标识的日志的日志级别。默认情况下,该命令发送HTTP请求,但可以使用参数-protocol https来覆盖此请求以发送HTTPS请求。

例:

$ bin/hadoop daemonlog -setlevel 127.0.0.1:9870 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG
$ bin/hadoop daemonlog -getlevel 127.0.0.1:9871 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG -protocol https

请注意,该设置不是永久性的,并且会在重新启动守护程序时重置。此命令通过向守护程序的内部Jetty servlet发送HTTP / HTTPS请求来工作,因此它支持以下守护程序:

  • Common
    • key management server
  • HDFS
    • name node
    • secondary name node
    • data node
    • journal node
    • HttpFS server
  • YARN
    • resource manager
    • node manager
    • Timeline server
    •  

文件

etc/hadoop/hadoop-env.sh

此文件存储所有Hadoop shell命令使用的全局设置。

etc/hadoop/hadoop-user-functions.sh

此文件允许高级用户覆盖某些shell功能。

〜/ .hadooprc

这为个人用户存储个人环境。它在hadoop-env.sh和hadoop-user-functions.sh文件之后处理,并且可以包含相同的设置。

 

 

 

 

原文链接: https://hadoop.apache.org/docs/r3.2.0/

你可能感兴趣的:(Hadoop,Hadoop官方API,Hadoop3.2.0,官方中文API)