hadoop 命令

作者: 大诗兄_zl | 来源:发表于2018-04-12 11:47 被阅读27次

问题导读
1.hadoop daemonlog管理员命令的作用是什么?
2.hadoop如何运行一个类,如何运行一个jar包?
3.hadoop archive的作用是什么?

[图片上传中...(image-2a4785-1523504811054-0)]

概述

hadoop命令被bin/hadoop 脚本调用. 运行hadoop脚本不带任何命令将打印命令相关描述。
Usage: hadoop [--config confdir] [--loglevel loglevel] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

|

FIELD

|

Description

|
|

--config confdir

|

覆盖默认配置文件目录。默认路径${HADOOP_HOME}/conf.

|
|

--loglevel loglevel

|

覆盖日志级别. 有效日志级别为FATAL, ERROR, WARN, INFO, DEBUG, 和 TRACE. 默认是 INFO.

|
|

GENERIC_OPTIONS

|

多项命令共同支持的选项

|
|

COMMAND_OPTIONS

|

hadoop子项目文档描述了hadoop命令的选项。hdfs和YARN在其它文档那个

|

Hadoop 通用选项

Many subcommands honor a common set of configuration options to alter their behavior:

|

GENERIC_OPTION

|

Description

|
|

-archives <comma separated list of archives>

|

Specify comma separated archives to be unarchived on the compute machines. Applies only to job.

|
|

-conf <configuration file>

|

指定应用程序配置文件

|
|

-D <property>=<value>

|

使用一个给定的属性值

|
|

-files <comma separated list of files>

|

指定文件复制到mapredue集群。仅适用于job.

|
|

-jt <local> or <resourcemanager:port>

|

指定ResourceManager.仅适用于job.

|
|

-libjars <comma seperated list of jars>

|

指定jar文件包括所在classpath.仅适用于job.

|

Hadoop 通用命令

所有这些命令都是从Hadoop的shell命令执行。他们被分成用户命令和管理员命令【 User Commands 和 Admininistration Commands.】

用户命令
用于Hadoop集群用户命令。

archive

创建一个Hadoop档案,更多信息查看 Hadoop Archives Guide.

checknative

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

|

COMMAND_OPTION

|

Description

|
|

-a

|

检查所有库

|
|

-h

|

打印帮助

|

这个命令检查Hadoop本地代码的可用性。更多信息查看 #NativeLibraries.html。默认,此命令只检查libhadoop的可用性。
classpath

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

|

COMMAND_OPTION

|

Description

|
|

--glob

|

通配符

|
|

--jar path

|

jar路径

|
|

-h, --help

|

打印帮助

|

打印classpath需要Hadoop的jar和需要的库类路径。如果不带参数调用,然后打印的命令脚本设置classpath。这可能包含通配符

credential

用法:hadoop credential <subcommand> [options]

|

COMMAND_OPTION

|

Description

|
|

create alias [-provider provider-path]

|

提示证书被存储为指定别名的用户。如果没有-provider选项的话,那么将会默认使用core-site.xml文件中hadoop.security.credential.provider.path项对应的值。

|
|

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

|

删除与所提供的别名对应的证书文件。如果没有-provider选项的话,那么将会默认使用core-site.xml文件中hadoop.security.credential.provider.path项对应的值。这项操作需要通过用户的确认,除非使用了-f选项。

|
|

list [-provider provider-path]

|

列出所有的证书别名。如果没有-provider选项的话,那么将会默认使用core-site.xml文件中hadoop.security.credential.provider.path项对应的值。

|

该命令在凭证提供者内部管理凭证(credentials),密码(passwords)和秘密(secrets)。

Hadoop的CredentialProvider API支持应用程序拆分,并且要求拆分后的应用如何储存所需的密码(passwords)和秘密(secrets)。为了指明一个Provider的位置和类型,需要在core-site.xml添加hadoop.security.credential.provider.path配置项,或者通过指令中-provider命令选项进行设置。Provider路径是一串以逗号分割的URL字符串。这些字符串会说明Provider的类型和位置,举个例子:

[Bash shell] 纯文本查看 复制代码

|

1

|

user:``///``,jceks:``//file/tmp/test``.jceks,jceks:``/hdfs``@nn1.example.com``/my/path/test``.jceks

|

指示当前用户的凭证,需要通过User Provider咨询。存储在本地文件系统的文件/tmp/test.jceks是一个Java Keystore Provider,相应的存储在hdfs上的文件nn1.example.com/my/path/test.jcek也是一个Java Keystore Provider。

当使用credential命令时,它通常要提供密码(password)或秘密(secret)给一个特定的凭证存储provider。为了清晰的表明要显示使用哪个provider存储,可以在命令中使用-provider选项。否则,给定多个provider的时候,则使用的哥非持久的provider,这可能不是你预期的
例如:

[Bash shell] 纯文本查看 复制代码

|

1

|

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

|

distcp

递归的拷贝文件或者目录。更多信息查看 Hadoop DistCp Guide.

fs
这个命令在文档 File System Shell Guide 。 和hdfs脚本的dfs类似

jar

用法: hadoop jar <jar> [mainClass] args...
运行一个jar文件使用yarn启动yarn应用程序

key
通过KeyProvider管理秘钥

trace

查看和修改Hadoop跟踪(tracing)设置。查看:跟踪(tracing)指南。
Tracing Guide.

version

用法: hadoop version

打印版本

CLASSNAME

用法: hadoop CLASSNAME

运行一个类

管理员命令

集群管理员命令
daemonlog
用法:

[Bash shell] 纯文本查看 复制代码

|

1

2

|

hadoop daemonlog -getlevel <host:httpport> <classname>

hadoop daemonlog -setlevel <host:httpport> <classname> <level>

|

|

COMMAND_OPTION

|

Description

|
|

-getlevel host:httpportclassname

|

打印运行在<host:port>的守护进程的日志级别。这个命令内部会连接http://<host:port>/logLevel?log=<name>

|
|

-setlevel host:httpportclassname level

|

设置运行在<host:port>的守护进程的日志级别。这个命令内部会连接http://<host:port>/logLevel?log=<name>

|

设置或获取指定后台进程的日志级别

[Bash shell] 纯文本查看 复制代码

|

1

|

Example: $ bin``/hadoop daemonlog -setlevel 127.0.0.1:50070 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG

|

相关文章

网友评论

    本文标题:hadoop 命令

    本文链接:https://www.haomeiwen.com/subject/spsxkftx.html