三、Hadoop命令

 

Hadoop命令引导

概览

所有的Hadoop命令都是通过/bin/hadoop脚本触发的。以无参的形式运行该脚本,将会打印出所有命令的描述。

使用:hadoop [--config confdir] [--loglevel loglevel] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

字段描述
--config confdir 覆写默认的配置文件目录。默认为${HADOOP_HOME}/conf
--loglevel loglevel 覆写日志级别。有效的日志级别为FATAL,ERROR,WARN,INFO,DEBUG和TRACE。默认级别是INFO。
GENERIC_OPTIONS 一般性选项。支持大多数的命令
COMMNAD_OPTIONS 不同的命令有它们自己的可选项参数,这篇文档描述了Hadoop公共的子项目。对于HDFS和YARN在其他文档中有描述

 

一般性可选项参数

一般性可选参数,就是一个命令的一系列可选参数,可以用来改变命令的相应的行为。

一般性可选参数描述
--archives<用逗号进行分割的archives列表> 指明以逗号分隔的archives为unarchives。仅仅可用于job
--conf<配置文件> 指明一个应用的配置文件
-D= 给给定的property赋值
-files<用逗号分隔的文件列表> 指明以逗号分隔的文件列表,将被拷贝到map reduce的集群当中。仅仅对job可用。
-jtor 指明一个资源管理器。仅仅job可用。
-libjars<以逗号进行分割的jars> 指明一个以逗号进行分割的jar包列表到classpath。仅仅job可用。

 

Hadoop通用命令

所有的命令都是来自于hadoop命令的执行。它们被分成用户命令和管理员命令。

用户命令

对hadoop集群用户有用的命令

archive

 创建一个hadoop的存档(archive)。更多的信息浏览Hadoop 存档指导。

 

checknative

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

命令可选项参数描述
-a 检查所有可用的libraries。
-h 帮助信息。

这个命令检查Hadoop本地代码的可用性。缺省情况下,这个命令只检查libhadoop的可用性。

 

classpath

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

命令可选项参数描述
--glob 通配符
--jar path 将classpth作为清单书写到命名为path的jar中。
-h,--help 帮助信息

打印出classpath需要获得Hadoop的jar和必要的库文件。如果在调用的时候没有带参数,将会打印出由脚本命令设置的classpath,这个好像是在classpath条目中那些包含通配符的项。其他的可选项,是在将通配符或者将classpath写到一个jar文件中的清单文件(manifest)之后打印出classpath。

 

credential

使用方法:hadoop credential <subcommand>[options]

命令可选项参数描述
create alias[-provider provider-path] 提示用户证书以给定的别名的形式进行存储。在core-site.xml中的配置项hadoop.security.credential.provider.path将会被使用,除非-provider被指明。
delete alias[provider provider-path][-f] 根据别名删除证书。在core-site.xml文件中的配置项hadoop.security.credential.provider.path将会起作用,除非-provider被指明。这个命令会询问是否确定,除非加上强制删除的可选项[-f]
list[-provider provider-path] 列出所有证书的别名,此时,配置文件core-site.xml的配置项hadoop.security.credential.provider.path将会被使用,除非-provider被指明。

由证书提供者管理证书、密码和凭证的命令。

在Hadoop当中的证书所提供者API允许应用和以什么方式存储它们必要的密码/凭证是分离的。为了指明给定的类型和地址,用户必须在core-site.xml文件中对配置项hadoop.security.credential.provider.path进行配置或者在每个命令后加上命令行可选项-provider。这个provider path是一个用逗号进行分割的URLs列表,它就指明了类型和地址。比如,下面的地址:

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

表明当前用户的证书文件应该通过用户提供者(在/tmp/test.jceks的本地文件中是java秘钥库的提供者,在nnl.example.com/my/path/test.jceks的HDFS文件也是一个java秘钥库的提供者)进行咨询。

当我们使用证书命令时,经常是为了提供一个密码或者凭证给一个给一个特殊的证书存储提供者。为了显性的指明哪一个提供者存储被使用,这时候可选项-option会被使用到。否则,给定一个路径包含多个提供者,第一个非瞬态的提供者将会被利用。这个可能是也可能不是你所打算的。

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

 

distcp

以迭代的方式拷贝文件或者文件夹。

 

fs

当HDFS在使用时,它时hdfs dfs 的同义词

 

jar

 使用方法:hadoop jar<jar>[mainClass] args...

运行一个jar文件。

使用yarn jar来启动YARN应用。

 

key

通过key提供者管理key。

 

trace

 查看或修改Hadoop的trace设置。

 

version

使用方法:hadoop version

打印出版本号信息。

 

CLASSNAME

 使用方法:hadoop CLASSNAME

运行名称为CLASSNAME的类。

 

管理员命令

对Hadoop集群的管理员有用的命令

daemonlog

使用方法:

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

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

命令可选项参数描述
-getlevel host:httpport classname 打印出通过classname指定的在host:httpport后台运行的日志的级别。这个命令内在的连接到http:///logLevel?log=
-setlevel host:httport classname level 设置通过classname指定的在host:httport后台运行的日志的级别。这个命令内部连接到http:///logLevel?log=&level=

在守护进程中通过有效的类名指定的日志来Get/Set日志的级别。

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

posted on 2015-06-17 16:09  飞机说之代码也疯狂  阅读(531)  评论(0编辑  收藏  举报