MapReduce 命令指南

概述

所有 mapreduce 命令均由 bin/mapred 脚本调用。在没有任何参数的情况下运行 mapred 脚本将打印所有命令的描述。

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

Hadoop 具有一个选项解析框架,该框架采用解析通用选项以及运行类。

COMMAND_OPTIONS 说明
SHELL_OPTIONS 一组常见的 shell 选项。这些选项在 Hadoop 命令参考 页面中有记录。
GENERIC_OPTIONS 多个命令支持的一组常见选项。有关详细信息,请参阅 Hadoop 命令参考
COMMAND COMMAND_OPTIONS 以下部分介绍了各种命令及其选项。这些命令已分组为 用户命令管理命令

用户命令

Hadoop 集群用户可用的命令。

archive

创建 Hadoop 存档。更多信息,请参阅 Hadoop 存档指南

archive-logs

一个将 YARN 聚合日志合并到 Hadoop 存档中的工具,以减少 HDFS 中的文件数量。更多信息,请参阅 Hadoop 存档日志指南

classpath

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

COMMAND_OPTION 说明
--glob 展开通配符
--jar path 将类路径写入名为 path 的 jar 中的清单
-h, --help 打印帮助

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

distcp

递归复制文件或目录。更多信息,请参阅 Hadoop DistCp 指南

job

与 Map Reduce 作业交互的命令。

用法:mapred job | [GENERIC_OPTIONS] | [-submit <job-file>] | [-status <job-id>] | [-counter <job-id> <group-name> <counter-name>] | [-kill <job-id>] | [-events <job-id> <from-event-#> <#-of-events>] | [-history [all] <jobHistoryFile|jobId> [-outfile <file>] [-format <human|json>]] | [-list [all]] | [-kill-task <task-id>] | [-fail-task <task-id>] | [-set-priority <job-id> <priority>] | [-list-active-trackers] | [-list-blacklisted-trackers] | [-list-attempt-ids <job-id> <task-type> <task-state>] [-logs <job-id> <task-attempt-id>] [-config <job-id> <file>]

COMMAND_OPTION 说明
-submit job-file 提交作业。
-status job-id 打印 map 和 reduce 完成百分比以及所有作业计数器。
-counter job-id group-name counter-name 打印计数器值。
-kill job-id 终止作业。
-events job-id from-event-# #-of-events 打印 jobtracker 在给定范围内收到的事件的详细信息。
-history [all] jobHistoryFile|jobId [-outfile file] [-format human|json] 打印作业详细信息、失败和终止的作业详细信息。可以通过指定 [all] 选项查看有关作业的更多详细信息,例如成功作业、为每个作业进行的作业尝试、作业计数器等。可以指定一个可选的文件输出路径(而不是 stdout)。格式默认为人类可读格式,但也可以使用 [-format] 选项将其更改为 JSON。
-list [all] 显示尚未完成的作业。-list all 显示所有作业。
-kill-task task-id 终止任务。终止的任务不会计入失败尝试中。
-fail-task task-id 使任务失败。失败的任务会记入失败尝试中。
-set-priority job-id priority 更改作业的优先级。允许的优先级值为 VERY_HIGH、HIGH、NORMAL、LOW、VERY_LOW
-list-active-trackers 列出群集中的所有活动 NodeManager。
-list-blacklisted-trackers 列出群集中的黑名单任务跟踪器。此命令不受基于 MRv2 的群集支持。
-list-attempt-ids job-id task-type task-state 根据给定的任务类型和状态列出尝试 ID。task-type 的有效值为 REDUCE、MAP。task-state 的有效值为 running、pending、completed、failed、killed。
-logs job-id task-attempt-id 如果未指定 taskAttemptId,则转储作业的容器日志;否则,转储具有指定 taskAttemptId 的任务的日志。日志将转储在系统输出中。
-config job-id file 下载作业配置文件。

pipes

运行管道作业。

用法:mapred pipes [-conf <path>] [-jobconf <key=value>, <key=value>, ...] [-input <path>] [-output <path>] [-jar <jar file>] [-inputformat <class>] [-map <class>] [-partitioner <class>] [-reduce <class>] [-writer <class>] [-program <executable>] [-reduces <num>]

COMMAND_OPTION 说明
-conf path 作业配置
-jobconf key=value, key=value, … 添加/覆盖作业配置
-input path 输入目录
-output path 输出目录
-jar jar file Jar 文件名
-inputformat class InputFormat 类
-map class Java Map 类
-partitioner class Java 分区器
-reduce class Java Reduce 类
-writer class Java RecordWriter
-program executable 可执行 URI
-reduces num Reduce 数量

queue

用于交互和查看作业队列信息的命令

用法:mapred queue [-list] | [-info <job-queue-name> [-showJobs]] | [-showacls]

COMMAND_OPTION 说明
-list 获取系统中配置的作业队列列表。以及与作业队列关联的调度信息。
-info 作业队列名称 [-showJobs] 显示作业队列信息和特定作业队列关联的调度信息。如果存在 -showJobs 选项,则会显示提交到特定作业队列的作业列表。
-showacls 显示当前用户允许的队列名称和关联的队列操作。该列表仅包含用户有权访问的队列。

version

打印版本。

用法:mapred version

envvars

用法:mapred envvars

显示计算的 Hadoop 环境变量。

管理命令

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

historyserver

启动 JobHistoryServer。

用法:mapred historyserver

hsadmin

运行 MapReduce hsadmin 客户端以执行 JobHistoryServer 管理命令。

用法:mapred hsadmin [-refreshUserToGroupsMappings] | [-refreshSuperUserGroupsConfiguration] | [-refreshAdminAcls] | [-refreshLoadedJobCache] | [-refreshLogRetentionSettings] | [-refreshJobRetentionSettings] | [-getGroups [username]] | [-help [cmd]]

COMMAND_OPTION 说明
-refreshUserToGroupsMappings 刷新用户到组的映射
-refreshSuperUserGroupsConfiguration 刷新超级用户代理组映射
-refreshAdminAcls 刷新 Job 历史记录服务器管理的 acl
-refreshLoadedJobCache 刷新 Job 历史记录服务器加载的作业缓存
-refreshJobRetentionSettings 刷新作业历史记录周期、作业清理程序设置
-refreshLogRetentionSettings 刷新日志保留期和日志保留检查间隔
-getGroups [username] 获取给定用户所属的组
-help [cmd] 显示给定命令的帮助,如果没有指定命令,则显示所有命令的帮助。

frameworkuploader

收集框架 jar 并将它们作为 tarball 上传到 HDFS。

用法:mapred frameworkuploader -target <target> [-fs <filesystem>] [-input <classpath>] [-blacklist <list>] [-whitelist <list>] [-initialReplication <num>] [-acceptableReplication <num>] [-finalReplication <num>] [-timeout <seconds>] [-nosymlink]

COMMAND_OPTION 说明
-input classpath 这是要搜索 jar 文件以将其包含在 tarball 中的输入类路径。
-fs filesystem 目标文件系统。默认为 fs.defaultFS 设置的默认文件系统。
-target target 这是框架 tarball 的目标位置,后面可以跟一个带有本地化别名的 #。一个示例是 /usr/lib/framework.tar#framework。确保目标目录对所有用户可读,但非管理员不能写入,以保护集群安全。
-blacklist list 这是一个逗号分隔的正则表达式数组,用于过滤要从类路径中排除的 jar 文件名。例如,它可用于排除测试 jar 或不需要本地化的 Hadoop 服务。
-whitelist list 这是一个逗号分隔的正则表达式数组,用于包含某些 jar 文件。这可用于提供额外的安全性,以便在工具运行时,没有外部来源可以在类路径中包含恶意代码。
-nosymlink 此标志可用于排除指向相同目录的符号链接。这并不常用。例如,/a/foo.jar 和指向 /a/foo.jar 的符号链接 /a/bar.jar 通常会将 foo.jarbar.jar 作为单独的文件添加到 tar 包中,尽管它们实际上是同一个文件。此标志将使工具排除 /a/bar.jar,因此只添加该文件的副本。
-initialReplication num 这是创建框架 tar 包时的复制计数。将此值保留为默认值 3 是安全的。这是经过测试的方案。
-finalReplication num 上传工具在收集并上传所有块后设置复制。如果需要快速初始启动,建议将其设置为已委托节点数除以 2,但不得超过 512。
-acceptableReplication num 该工具将等待,直到 tar 包被复制了这么多次后才退出。这应小于或等于 finalReplication 中的值。这通常是 finalReplication 中值的 90%,以适应故障节点。
-timeout seconds 在工具退出之前,等待达到 acceptableReplication 的超时(以秒为单位)。否则,该工具会记录错误并返回。