Hadoop命令指南

Hadoop命令指南

总览

所有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的开发人员version本。

--config confdir

覆盖默认的配置目录。默认是$ HADOOP_HOME / etc / hadoop

--daemon mode

如果命令支持守护程序(例如hdfs namenode),请在适当的模式下执行。支持的模式开始启动进程守护进程方式,停止,停止的过程中,状态确定过程的工作状态。status将返回符合LSB的结果代码。如果未提供任何选项,则支持守护程序的命令将在前台运行。对于不支持守护程序的命令,此选项将被忽略。

--debug

启用Shell层配置调试信息

--help

Shell脚本用法信息。

--hostnames

使用--workers时,请使用空格分隔的主机名列表覆盖worker文件,以在其中执行多主机子命令。如果不使用--workers,则忽略此选项。

--hosts

使用--workers时,请用另一个文件覆盖该worker文件,该文件包含要在其中执行多主机子命令的主机名列表。如果不使用--workers,则忽略此选项。

--loglevel

loglevel

覆盖日志级别。有效的日志级别为FATAL,ERROR,WARN,INFO,DEBUG和TRACE。默认值为INFO。

--workers

如果可能,请在worker文件中的所有主机上执行此命令。

通用选项

许多子命令使用一组通用的配置选项来更改其行为:

GENERIC_OPTION

描述

-archives <以逗号分隔的存档列表>

指定用逗号分隔的归档文件,以在计算机上将其取消归档。仅适用于工作。

-conf <配置文件>

指定应用程序配置文件。

-D <属性> = <值>

给定属性的使用值。

-files <以逗号分隔的文件列表>

指定用逗号分隔的文件,以将其复制到map reduce集群。仅适用于工作。

-fs <file:///>或<hdfs:// namenode:port>

指定要使用的默认文件系统URL。从配置中覆盖“ fs.defaultFS”属性。

-jt <本地>或<资源管理器:端口>

指定一个ResourceManager。仅适用于工作。

-libjars <以逗号分隔的jar列表>

指定以逗号分隔的jar文件以包含在classpath中。仅适用于工作。

Hadoop常用命令

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

用户指令

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

archive

创建一个hadoop存档。有关更多信息,请参见《Hadoop存档指南》

checknative

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

COMMAND_OPTION

描述

-a

检查所有库是否可用。

-h

打印帮助

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

classpath

用法:hadoopclasspath[--glob | --jar <路径> | -h |-帮助]

COMMAND_OPTION

描述

--glob

扩展通配符

--jar path

classpath体现在jar子命名的路径

-h--help

打印帮助

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

conftest

用法:hadoop conftest [-conffile <路径>] ...

COMMAND_OPTION

描述

-conffile

要验证的配置文件或目录的路径

-h--help

打印帮助

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

验证非常少:解析XML,并检查重复和空属性名称。该命令不支持XInclude。如果您使用它来引入配置项,它将声明XML文件无效。

credential

用法:hadoop credential<subcommand> [options]

COMMAND_OPTION

描述

create alias [ -provider provider-path ] [-strict] [-value credential-value ]

提示用户将credential存储为给定别名。所述hadoop.security.credential.provider.path芯site.xml文件内将被使用,除非一个-provider被指示。该-strict标志将导致如果提供商使用默认密码的命令失败。使用-value标志来提供credential值(又名别名密码),而不是提示输入。

delete alias [ -provider provider-path ] [-strict] [-f]

删除具有提供的别名的credential。所述hadoop.security.credential.provider.path芯site.xml文件内将被使用,除非一个-provider被指示。该-strict标志将导致如果提供商使用默认密码的命令失败。该命令要求确认,除非指定了-f

list[-provider provider-path ] [-strict]

列出所有的credential别名的hadoop.security.credential.provider.path除非芯site.xml文件内将被使用-provider指示。该-strict标志将导致如果提供商使用默认密码的命令失败。

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

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

指示应通过用户提供程序查询当前用户的credential文件,/ tmp / test.jceks上的本地文件是Java密钥存储提供程序,并且HDFS内的文件位于nn1.example.com/my/path/ test.jceks还是Java Keystore Provider的商店。

使用credential命令时,通常是用于向特定credential存储提供者提供密码或机密。为了明确指示要使用哪个提供程序存储,应使用-provider选项。否则,给定多个提供程序的路径,将使用第一个非临时提供程序。这可能是您想要的,也可能不是。

提供程序经常要求提供密码或其他机密。如果提供者需要密码而找不到密码,它将使用默认密码并发出一条警告消息,提示您正在使用默认密码。如果提供了-strict标志,则警告消息变为错误消息,并且该命令立即返回错误状态。

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

distch

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

COMMAND_OPTION

描述

-f

更改对象列表

-i

忽略故障

-log

日志输出目录

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

distcp

递归复制文件或目录。有关更多信息,请参见《 Hadoop DistCp指南》

dtutil

用法:hadoop的dtutil [-keytab keytab_file -principal principal_name  [-format(Java | protobuf的)] [-alias 别名 ] [-renewer 新生 文件名...

实用程序,用于获取和管理credential文件中的hadoop授权令牌。它旨在代替更简单的命令fetchdt。有多个子命令,每个子命令都有自己的标志和选项。

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

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

子命令

描述

print
   [-alias alias ]
   filename filename2 ...]

打印出文件名(和文件名2 …)中包含的标记中的字段。
如果指定了alias,则仅打印与alias匹配的标记。否则,打印所有令牌。

get URL
   [-service scheme ]
   [-format(java | protobuf)]
   [-alias alias ]
   [-renewer renewer ]
   filename

从服务处通过URL获取令牌,并将其放入filename中
URL是必需的,必须紧跟在get之后
URL是服务URL,例如hdfs:// localhost:9000
别名将覆盖令牌中的服务字段。
它适用于具有外部和内部名称的主机,例如,firewall.com14000
filename应该位于最后,并且是令牌文件的名称。
如果不存在,将创建它。否则,令牌将添加到现有文件中。
-service标志只能与开始的URL使用HTTPhttps
以下是等效的:hdfs:// localhost:9000 /http:// localhost:9000 -service hdfs

append
   [-format(java | protobuf)]
   filename filename 

[filename3...]

将前N个文件名的内容追加到最后一个文件名。
当多个文件中存在具有公共服务字段的令牌时,早期文件的令牌将被覆盖。
也就是说,最后一个文件中存在的令牌始终被保留。

remove -alias alias
   [-format(java | protobuf)]
   filename 

filename2 ...]

从指定的每个文件中,删除与别名匹配的标记,并使用指定的格式写出每个文件。必须指定
别名

cancel -alias alias

   [-format(java | protobuf)]
   filename 

filename2 ...]

就像remove一样,除了令牌也使用令牌对象中指定的服务取消。必须指定
别名

renew -alias alias
   [-format(java | protobuf)]
   filename 

filename2 ...]

对于指定的每个文件,续订与别名匹配的令牌,并使用指定的格式写出每个文件。必须指定
别名

fs

该命令记录在《文件系统Shell指南》中。使用HDFS时,它是hdfs dfs的同义词。

gridmix

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

jar

用法:hadoop jar <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]

COMMAND_OPTION

描述

create keyname 

[-cipher cipher]

[-size size] [-description description] [-attr attribute=value]

[-provider provider]

[-strict]

[-help]

创建由指定的名称一个新的密钥key由指定的提供者中的说法-provider说法。该-strict标志将导致如果提供商使用默认密码的命令失败。您可以使用-cipher参数指定密码。当前默认密码为“ AES / CTR / NoPadding”。缺省密钥大小为128。您可以使用-size参数指定请求的密钥长度。可以使用-attr参数指定任意属性=值样式属性。可以多次指定-attr,每个属性一次。

roll keyname 

[-provider provider]

[-strict] [-help]

为使用-provider参数指示的提供程序中的指定key创建新version本。该-strict标志将导致如果提供商使用默认密码的命令失败。

delete keyname 

[-provider provider]

[-strict] [-f]

[-help]

-provider指定的提供程序中删除keyname参数指定的key的所有version本。该-strict标志将导致如果提供商使用默认密码的命令失败。除非指定-f,否则该命令要求用户确认。

list

[-provider provider]

[-strict] [-metadata]

[-help]

显示在core-site.xml中配置或使用-provider参数指定的特定提供程序中包含的key名。该-strict标志将导致如果提供商使用默认密码的命令失败。-metadata显示元数据。

-help

打印此命令的用法

通过KeyProvider管理密钥。有关KeyProvider的详细信息,请参见《透明加密指南》

提供程序经常要求提供密码或其他机密。如果提供者需要密码而找不到密码,它将使用默认密码并发出一条警告消息,提示您正在使用默认密码。如果提供了-strict标志,则警告消息变为错误消息,并且该命令立即返回错误状态。

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

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

kms

用法:hadoop kms

运行密钥管理服务器KMS。

trace

查看和修改Hadooptrace设置。请参阅《trace指南》

version

用法:hadoop version

打印版本

CLASSNAME

用法:hadoop CLASSNAME

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

envvars

用法:hadoop envvars

显示计算的Hadoopenvvars

管理命令

对hadoop集群的管理员有用的命令。

守护进程

用法:

hadoop daemonlog -getlevel <host:port> <classname> [-protocol(http | https)]

hadoop daemonlog -setlevel <host:port> <classname> <level> [-protocol(http | https)]

COMMAND_OPTION

描述

-getlevel host:port classname [-protocol (httphttps)]

host:port运行的守护进程中,打印由合格的类名标识的日志的日志级别。所述-protocol标志指定用于连接的协议。

-setlevel 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调试-协议https

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

  • 共同
    • 密钥管理服务器
  • HDFS
    • 名称节点
    • 次要名称节点
    • 数据节点
    • 日记节点
    • HttpFS服务器
  • YARN
    • 资源经理
    • 节点管理器
    • 时间轴服务器

文件

etc/hadoop/hadoop-env.sh

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

etc / hadoop / hadoop-user-functions.sh

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

〜/ .hadooprc

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

 

发布了377 篇原创文章 · 获赞 127 · 访问量 64万+

猜你喜欢

转载自blog.csdn.net/daqiang012/article/details/104122014
今日推荐