MapReduce 命令指南

概觀

所有 mapreduce 命令都是由 bin/mapred 指令碼呼叫的。執行 mapred 指令碼而沒有任何引數會印出所有命令的說明。

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

Hadoop 有個選項剖析架構,它採用剖析一般選項以及執行類別的方式。

COMMAND_OPTIONS 說明
SHELL_OPTIONS 殼牌選項的常見集合。這些選項記錄在 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 工作 ID 終止工作。
-events 工作 ID 起始事件編號 事件數量 列印 Jobtracker 在給定範圍內收到的事件詳細資料。
-history [all] 工作記錄檔|工作 ID [-outfile 檔案] [-format 人類可讀|json] 列印工作詳細資料、失敗和終止的任務詳細資料。指定 [all] 選項可查看更多工作詳細資料,例如成功的任務、每個任務執行的任務嘗試、任務計數器等。可以指定一個選用的檔案輸出路徑(而非標準輸出)。格式預設為人類可讀,但也可以使用 [-format] 選項變更為 JSON。
-list [all] 顯示尚未完成的工作。-list all 會顯示所有工作。
-kill-task 任務 ID 終止任務。終止的任務不會計入失敗嘗試。
-fail-task 任務 ID 使任務失敗。失敗的任務會計入失敗嘗試。
-set-priority 工作 ID 優先順序 變更工作的優先順序。允許的優先順序值為 VERY_HIGH、HIGH、NORMAL、LOW、VERY_LOW
-list-active-trackers 列出叢集中的所有活動 NodeManager。
-list-blacklisted-trackers 列出叢集中的黑名單工作追蹤器。MRv2 為基礎的叢集不支援此命令。
-list-attempt-ids 工作 ID 任務類型 任務狀態 根據任務類型和給定的狀態列出嘗試 ID。任務類型的有效值為 REDUCE、MAP。任務狀態的有效值為 running、pending、completed、failed、killed。
-logs 工作 ID 任務嘗試 ID 如果未指定 taskAttemptId,則傾印工作容器記錄檔;否則,傾印具有指定 taskAttemptId 的任務記錄檔。記錄檔將傾印到系統輸出。
-config 工作 ID 檔案 下載工作組態檔。

pipes

執行 pipes 工作。

用法:mapred pipes [-conf <路徑>] [-jobconf <金鑰=值>, <金鑰=值>, ...] [-input <路徑>] [-output <路徑>] [-jar <jar 檔案>] [-inputformat <類別>] [-map <類別>] [-partitioner <類別>] [-reduce <類別>] [-writer <類別>] [-program <可執行檔>] [-reduces <數量>]

COMMAND_OPTION 說明
-conf 路徑 工作的組態
-jobconf 金鑰=值, 金鑰=值, … 新增/覆寫工作的組態
-input 路徑 輸入目錄
-output 路徑 輸出目錄
-jar jar 檔案 Jar 檔名
-inputformat 類別 InputFormat 類別
-map 類別 Java Map 類別
-partitioner 類別 Java Partitioner
-reduce 類別 Java Reduce 類別
-writer 類別 Java RecordWriter
-program 可執行檔 可執行檔 URI
-reduces 數字 Reduce 數目

queue

與工作佇列資訊互動和檢視的指令

用法:mapred queue [-list] | [-info <工作佇列名稱> [-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 [使用者名稱]] | [-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 這是用於搜尋要包含在 tarball 中的 jar 檔的輸入 classpath。
-fs filesystem 目標檔案系統。預設為由 fs.defaultFS 設定的預設檔案系統。
-target target 這是架構 tarball 的目標位置,後面可以選擇性地加上 # 和區域化別名。範例為 /usr/lib/framework.tar#framework。請確保目標目錄可供所有使用者讀取,但只有管理員才能寫入,以保護叢集安全性。
-blacklist list 這是用逗號分隔的正規表示式陣列,用於篩選要從 class 路徑中排除的 jar 檔名稱。例如,它可以用於排除測試 jar 檔或不需要區域化的 Hadoop 服務。
-whitelist list 這是用逗號分隔的正規表示式陣列,用於包含特定的 jar 檔。這可以用於提供額外的安全性,以便在工具執行時,沒有外部來源可以在 class 路徑中包含惡意程式碼。
-nosymlink 此旗標可用於排除指向相同目錄的符號連結。這並不常用。例如,/a/foo.jar 和指向 /a/foo.jar 的符號連結 /a/bar.jar 通常會將 foo.jarbar.jar 作為獨立的檔案新增到 tarball 中,儘管它們實際上是同一個檔案。此旗標會讓工具排除 /a/bar.jar,這樣只會新增一個檔案副本。
-initialReplication num 這是用於建立架構 tarball 的複製計數。將此值保留為預設值 3 是安全的。這是經過測試的場景。
-finalReplication num 上傳工具會在收集並上傳所有區塊後設定複製。如果需要快速啟動,建議將此設定為委派節點計數除以 2,但不得超過 512。
-acceptableReplication num 此工具會等到 tarball 已複製此次數後再結束。這應小於或等於 finalReplication 中的值。這通常是 finalReplication 中值的 90%,以容納故障節點。
-timeout 秒數 在工具結束前,以秒為單位等待達到 acceptableReplication 的逾時時間。否則,此工具會記錄錯誤並傳回。