Hadoop命令行指南

1. 综述

Hadoop及其子模块的命令都遵循着相同的基本结构:

用法:shellcommand [SHELL_OPTIONS] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

字段描述
shellcommand

被调用的模块的命令。比如:调用Hadoop common模块下的命令用hadoop,HDFS用hdfs,YARN用yarn。

SHELL_OPTIONS

shell在执行Java程序之前需处理的选项。

COMMAND要执行的动作。
GENERIC_OPTIONS多个命令支持的常见选项集。
COMMAND_OPTIONS

本篇主要描述Hadoop common模块下的各种命令选项,HDFS和YARN的相关命令选项在其它博文进行介绍。

1.1 Shell选项

所有shell命令都将接受一组常见的选项。对于一些命令而言,这些选项将被忽略。例如:在一个命令中传入--hostnames,只在单个主机上执行时将被忽略。

SHELL_OPTION说明
--buildpaths启用开发者自定义版本的jars。
--config confdir覆盖默认的配置文件目录,默认是$HADOOP_HOME/etc/hadoop。
--daemon mode

如果该命令可以被设置为守护进程(例如hdfs namenode),它将以适当的模式执行。支持的模式将开始以守护进程的模式去启动该进程,停止终止该进程,然后该状态将决定该进程是否存活,并且返回一个支持LSB的结果编码,如果没有提供选项,守护进程的命令将在前台运行。对于不能被设置为守护进程的进程,这个选项可以被忽略。

--debug

启用shell级配置调试信息。

--helpShell脚本使用的帮助信息。
--hostnames

当同时使用--workers时,将覆盖workers文件中的内容,不使用--workers时,此选项将被忽略。用法是:用空格分隔需要执行命令的主机名列表

--hosts

当同时使用--workers时,将使用另一个文件覆盖workers文件,这个文件将包含需执行命令的多个主机的主机名。如果不使用--workers,这个选项被忽略。

--loglevel loglevel

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

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

1.2 Generic Options

许多子命令遵循一组常见的配置选项来改变它们的行为:

GENERIC_OPTIONDescription
-archives <comma separated list of archives>

指定要在计算机上解除归档的以逗号分隔的归档文件。只适用于job。

-conf <configuration file>指定应用的配置文件
-D <property>=<value>为指定属性设置值
-files <comma separated list of files>

指定要复制到MapReduce集群的数据文件(多个文件之间用逗号分隔),只适用于job。

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

指定默认使用的文件系统URL,将重写配置文件中的fs.defaultFS

-jt <local> or <resourcemanager:port>指定ResourceManager,只适用于job
-libjars <comma seperated list of jars>

指定要放到classpath中的jar包(多个文件之间用逗号分隔)

2. Hadoop Common命令

所有这些命令均是在hadoop命令行模式下执行的,这些命令分为用户命令和管理命令

2.1 用户命令

Hadoop集群用户常用命令

2.1.1 archive

归档部分内容单独整理到其它博文中

2.1.2 checknative

用法:

hadoop checknative [-a] [-h]
命令参数说明
-a

检查所有的lib是否可用。

-h打印help

用于检查Hadoop本地代码的可用性。默认情况下,该命令只检查libhadoop的可用性。

2.1.3 classpath

用法:

hadoop classpath [--glob |--jar <path> |-h |--help]
命令参数说明
--glob通配符扩展
--jar path将path中的jar(path为目录时)或path对应的jar(path为jar文件时)写入classpath的清单
-h, --help打印help

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

2.1.4 conftest

用法:

hadoop conftest [-conffile <path>]...
命令参数说明
-conffile要验证的配置文件或目录的路径
-h, --help打印help

验证配置XML文件。不指定-conffile选项时,默认验证${HADOOP_CONF_DIR}中以.xml结尾的文件。如果指定,将验证指定的路径(可以是文件或目录)。如果指定了一个目录,将验证该目录中带xml后缀的所有文件。也可以多次指定-conffile选项(如:hadoop conftest -conffile <path> -conffile <path> 这样)。验证过程只是解析XML并检查重复的属性名和空属性名。不支持XInclude,如果使用它来拉入配置项,将产生XML文件无效的问题。

2.1.5 credential

用法:

hadoop credential <subcommand> [options]
命令参数说明
create alias [-provider provider-path] [-strict] [-value credential-value]

提示用户将凭据存储为给定别名。不指定-provider时,将取core-site.xml中配置的hadoop.security.credential.provider.path的值。provider使用默认密码时,-strict将导致命令失败。使用-value标志来提供凭证值(也就是别名密码),而不是通过提示输入密码的方式进行验证。

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

使用提供的别名删除凭据。不指定-provider时,将取core-site.xml中配置的hadoop.security.credential.provider.path的值。如果provider使用默认密码,-strict将导致命令失败。-f表示强制执行。

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

列出凭据别名,不指定-provider时,将取core-site.xml中配置的hadoop.security.credential.provider.path的值。provider使用默认密码时,-strict将导致命令失败。

通过credential provider对凭证,密码和密钥进行管理。

2.1.6 distch

用法: 

hadoop distch [-f urilist_url] [-i] [-log logdir] path:owner:group:permissions
命令参数说明
-f要更改的对象列表
-i忽视失败
-log日志输出目录

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

2.1.7 distcp

递归复制文件或目录,在另一篇博文中有详细介绍。

2.1.8 dtutil

用法:

hadoop dtutil [-keytab keytab_file -principal principal_name ] subcommand [-format (java|protobuf)] [-alias alias ] [-renewer renewer ] filename…

用于获取和管理凭证文件内的hadoop委托tokens的实用工具。它是用来替换fetchdt命令的。此命令一般包含有多个子命令,每个子命令都有自己的标志和选项。对于每个输出文件的子命令,-format选项将指定要使用的内部格式。对于连接到服务的每个子命令,都提供了方便的标志来指定kerberos主体名称和用于身份验证的keytab文件。

子命令说明
print
   [-alias alias ]
   filename [ filename2 ...]

如果指定了别名,则只打印匹配别名的tokens。不指定时,打印所有tokens。

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

通过URL获取服务的token并将其放入filename文件
必须指定URL,并且必须紧跟在get之后
这里的URL一定是服务URL,比如:hdfs://localhost:9000
alias将覆盖token中的服务字段
不管是内网环境还是外网环境的主机名称,均同样适用,例如firewall.com:14000
文件名应该放在最后,是token文件的名称
token一定是被追加到一个已存在的文件里面,如果文件不存在,则将先创建这个文件
-service 后面一定接的是以http或https开头的URL
-service后接hdfs://localhost:9000/ 和http://localhost:9000是一样的

append
   [-format (java|protobuf)]
   filename filename2 [ filename3 ...]

将前面N个文件的内容追加到最后一个文件

如果多个文件出现相同服务的token,后面文件的token将覆盖之前文件的token,

也就是说,在最后一个文件中出现的token始终被保留。

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

从每一个被指定的文件中删除alias对应的token然后以特定格式写出每个文件

必须指定alias

cancel -alias alias
   [-format (java|protobuf)]
   filename [ filename2 ...]

与删除相似,取消使用特定token也必须在特定token对象里进行操作
必须指定alias

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

以特定格式将指定的各个文件对应的alias进行更新并写入到每个文件

必须指定alias

2.1.9 fs

这部分内容被单独收录在File System Shell指南中,当使用hdfs时,它是hdfs dfs的同义词。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏舟飞流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值