3-Hadoop命令手册
Posted 大数据猿群
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3-Hadoop命令手册相关的知识,希望对你有一定的参考价值。
以下仅是译者,抽出闲暇时间进行翻译,由于本身能力有限,难免会有译错或者误解原作者意思,还请大家互相指正,互相学习。
概述
所有的Hadoop命令和子项目都跟随下面这个基本结构:
Usage:shellcommand [SHELL_OPTIONS] [COMMAND] [GENRIC_OPTIONS] [COMMAND_OPTIONS]
字段 | 描述 |
---|---|
shellcommand | 工程命令将被调用,例如 Hadoop common 模块 使用 hadoop ,HDFS 模块 使用 hdfs,yarn 模块使用yarn。 |
SHELL_OPTIONS | 执行java 之前的shell进程命令选项。 |
COMMAND | 动作执行 |
GENERIC_OPTIONS | 多个命令支持的通用设置选项。 |
COMMAND_OPTIONS | Hadoop common 模块的子项目命令选项,在这个文档都进行描述了,HDFS和YARN模块在别的文档中进行描述了。 |
Shell Options
所有的shellcommand 将会接受一个通用的设置选项。一些命令对于某些参数将会被忽略,例如--hostnames在单台主机上执行将会被忽略。
SHELL_OPTIONS | 描述 |
---|---|
--buildpaths | 支持开发人员的jar版本。 |
--config confdir | 覆盖默认配置目录,默认是$HADOOP_HOME/etc/hadoop 目录 |
-- daemon mode | |
--debug | 启用shell级别的配置调试信息 |
--help | Shell 脚本的用法 |
--hostnames | 当--workers被使用的,会被执行多主机子命令的空白符进行分割的主机列表覆盖。如果--workers没有使用,这个选项将会被忽略。 |
--hosts | 当workers被使用,会被另一个(contains a list of hostnames where to execute a multi-host subcommand.)的文件覆盖,如果--workers没有使用,这个选项将会被忽略。 |
--loglevel | 覆盖日志级别,有效的日志级别是FATAL,ERROR,WARN,INFO,DEBUG和TRACE,默认是INFO |
--workers | 如果可能,在workers文件中的所有主机上执行这个命令。 |
Generic Options
很多子命令遵守一组通用的配置选项来修改它们的行为:
GENERIC_OPTION | Description |
---|---|
-archives<逗号分割的归档列表> | 在计算机器上指定逗号分割的归档文件,只对job生效。 |
-conf<配置文件> | 指定一个应用配置文件 |
-D
|
使用一个给定的属性值 |
-files<逗号分割的文件列表> | 指定一个逗号分割的文件,复制到Map Reduce 集群。仅适用于job。 |
-fs
|
指定一个默认的文件系统URL,覆盖配置文件fs.defaultFS的属性 |
-jt <本地>或者
|
指定一个资源管理器,仅适用于job |
-libjars<以逗号分割的jars列表> | 指定一个逗号分割的jar文件列表,包括classpath下的。仅适用于job |
Hadoop 普通命令
以下所有这些命令都是从hadoop 的shell命令执行的,他们被分解为 用户命令和管理员用户。
用户命令
命令对于Hadoop集群的所有用户都适用
archive
创建一个Hadoop归档,更多的信息可以在Hadoop Archives Guide 找到。
checknative
用例:hadoop checknative [-a] [-h]
命令选项 | 描述 |
---|---|
-a | 检查所有类库是否可用 |
-h | 打印帮助信息 |
这个命令检查Hadoop本地类库的可用性。 关于更多的信息请看Native Libaries.默认,这个命令仅仅检查Hadoop lib目录下的类库。
classpath
用例:hadoop classpath [--glob |--jar
命令选项 | 描述 |
---|---|
--glob | 扩展通配符 |
--jar path | 按照jar文件中的清单写类路径 |
-h,--help | 打印帮助信息 |
打印Hadoop的jar和所需类库的 类路径。如果没有参数,那么会打印命令脚本设置的类路径,它可能包含类路径入口的通配符。附加的选项是在通配符扩展或者写类路径到jar文件中的清单之后进行打印。后者在通配符不能够使用和扩展的类路径超过了命令行最大长度限制的环境中是有用的。 |
credential
用例: hadoop credential
命令选项 | 描述 |
---|---|
创建别名[-provider provider-path] [-strict] [-value credential-value] | 对于证书,提示用户按照给定的别名进行存储。除非a-provider已经给定了,不然在core-site.xml文件内的hadoop.security.credential.provider.path 属性会被使用。如果证书的供应商提供了一个默认的密码,那么这个-strict 选项将会导致这个命令失败。使用-value 选项并提供一个证书值,而不是让它提示用户。 |
delete alias [-provider provider-path] [-strict] [-f] | 删除提供别名的证书,除非加了-f 选项,不然这个命令会进行询问确认是否删除。 |
list [-provider provider-path] [-strict] | 列出所有证书别名,The -strict flag will cause the command to fail if the provider uses a default password. |
这个命令是用来 管理 证书提供商之内的凭证、密码和密钥。
在Hadoop中证书提供商的API允许在应用分离和如何存储它们的密码和密钥。为了表明一个详细的提供类型和位置。用户必须在core-site.xml中提供hadoop.security.credential.provider.path配置属性或者在每个跟随命令的后面使用命令行选项。这个属性值是一个逗号分割的URL列表。例如按如下的路径:user:///,jceks://file/tmp/test.jceks,jceks://hdfs@nn1.example.com/my/path/test.jceks
indicates that the current user’s credentials file should be consulted through the User Provider, that the local file located at /tmp/test.jceks is a Java Keystore Provider and that the file located within HDFS at nn1.example.com/my/path/test.jceks is also a store for a Java Keystore Provider.
When utilizing the credential command it will often be for provisioning a password or secret to a particular credential store provider. In order to explicitly indicate which provider store to use the -provider option should be used. Otherwise, given a path of multiple providers, the first non-transient provider will be used. This may or may not be the one that you intended.
Providers frequently require that a password or other secret is supplied. If the provider requires a password and is unable to find one, it will use a default password and emit a warning message that the default password is being used. If the -strict flag is supplied, the warning message becomes an error message and the command returns immediately with an error status.
Example: 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 Guide中找到
dtutil
用法:hadoop dtutil [-keytab keytab_file -principal principal_name ] subcommand [-format (java|protobuf)] [-alias alias ] [-renewer renewer ] filename…
获取和管理授权文件中之内的hadoop授权token的实用工具
Utility to fetch and manage hadoop delegation tokens inside credentials files. It is intended to replace the simpler command fetchdt. There are multiple subcommands, each with their own flags and options.
For every subcommand that writes out a file, the -format option will specify the internal format to use. java is the legacy format that matches fetchdt. The default is protobuf.
For every subcommand that connects to a service, convenience flags are provided to specify the kerberos principal name and keytab file to use for auth.
子命令 | 描述 |
---|---|
print[-alias alias ]filename [ filename2 …] | Print out the fields in the tokens contained in filename (and filename2 …). If alias is specified, print only tokens matching alias. Otherwise, print all tokens. |
….. |
暂未翻译..可自行翻阅原文
fs
这个命令在文档File Sytem Shell Guide 有描述,hdfs dfs 等同于hadoop fs.
gridmix
Gridmix 对于Hadoop集群来说是一个检查命令
jar
用法:hadoop jar
运行一个jar 文件
使用yarn jar来代替启动YARN 应用
jnipath
用法:hadoop jnipath
打印计算的java类库路径
kerbname
用法:hadoop kerbname principal
Convert the named principal via the auth_to_local rules to the Hadoop user name.
Example: hadoop kerbname user@EXAMPLE.COM
kdiag
用法:hadoop kdiag
Diagnose Kerberos Problems
key
用法:Usage: hadoop key
…..
暂未翻译,此处可自行查看原文。
kms
用法:hadoop kms
运行KMS ,key管理服务
trace
查看和修改Hadoop的追踪配置。详情请看Tracing Guide
version
用法:hadoop version
打印版本
CLASSNAME
用法:hadoop CLASSNAME
运行以CLASSNAME命名的class,这个class必须是一个包的部分。
envvars
用法:hadoop envvars
显示hadoop的环境变量。
daemonlog
用法:
hadoop daemonlog -getlevel <host:port> <classname> [-protocol (http|https)]
hadoop daemonlog -setlevel <host:port> <classname> <level> [-protocol (http|https)]
命令选项 | 描述 |
---|---|
-getlevel host:port classname [-protocol (httphttps)] | 打印全类名日志标识级别,这个-protocol选项指定了连接的协议 |
-setlevel host:port classname level [-protocol (httphttps)] | 设置全类名日志标识级别,这个-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
这个设置不是永久的,当守护进程重启后将会被重置。这个命令会发送一个HTTP/HTTPS请求到守护进程的内部Jetty Servlet. 所以它支持如下命令:
Common
key management server
HDFS
name node
secondary name node
data node
journal node
HttpFS server
YARN
resource manager
node manager
Timeline server
Files
etc/hadoop/hadoop-env.sh
这个文件存储了所有Hadoop shell命令的全局变量配置
etc/hadoop/hadoop-user-functions.sh
这个文件允许一些高级的用户去覆盖一些shell 功能
~/.hadooprc
这个用户存储了一些个人用户的环境变量。它是在hadoop-env.sh和hadoop-user-functions.sh文件之后被处理的而且可能包含一些相同的配置。
↓↓↓ 点击"阅读原文" 【进入官网】
以上是关于3-Hadoop命令手册的主要内容,如果未能解决你的问题,请参考以下文章
前端开发必备!Emmet使用手册(转自 http://www.w3cplus.com/tools/emmet-cheat-sheet.html)