问题导读
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
|