YARN 指令由 bin/yarn 腳本呼叫。在沒有任何引數的情況下執行 yarn 腳本會列印所有指令的說明。
用法:yarn [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [SUB_COMMAND] [COMMAND_OPTIONS]
YARN 有個選項剖析架構,用於剖析一般選項以及執行類別。
COMMAND_OPTIONS | 說明 |
---|---|
SHELL_OPTIONS | 一般 Shell 選項組。這些選項在 指令手冊 頁面中有說明。 |
GENERIC_OPTIONS | 多個指令支援的一般選項組。請參閱 Hadoop 指令手冊 以取得更多資訊。 |
COMMAND COMMAND_OPTIONS | 下列各節說明各種指令及其選項。這些指令已分組為 使用者指令 和 管理指令。 |
Hadoop 集群使用者有用的指令。
application
或 app
用法:yarn application [options]
用法:yarn app [options]
COMMAND_OPTIONS | 說明 |
---|---|
-appId <ApplicationId> | 指定要操作的應用程式 ID |
-appStates <狀態> | 與 -list 搭配使用,根據輸入的應用程式狀態逗號分隔清單,篩選應用程式。有效的應用程式狀態可以是下列其中一個: ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED |
-appTags <標籤> | 與 -list 搭配使用,根據輸入的應用程式標籤逗號分隔清單,篩選應用程式。 |
-appTypes <類型> | 與 -list 搭配使用,根據輸入的應用程式類型逗號分隔清單,篩選應用程式。 |
-changeQueue <佇列名稱> | 將應用程式移至新的佇列。可使用「appId」選項傳遞 ApplicationId。「movetoqueue」指令已棄用,這個新的「changeQueue」指令執行相同的功能。 |
-component <元件名稱> <數量> | 與 -flex 選項搭配使用,以變更應用程式/長期執行服務執行的元件/容器數量。支援絕對或相對變更,例如 +1、2 或 -3。 |
-components <元件> | 與 -upgrade 選項搭配使用,以觸發應用程式的指定元件升級。多個元件應以逗號分隔。 |
-decommission <應用程式名稱> | 解除應用程式/長期執行服務的元件執行個體。需要 -instances 選項。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作,以處理此特定功能。 |
-destroy <應用程式名稱> | 銷毀已儲存的應用程式規格,並永久移除所有應用程式資料。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作,以處理此特定功能。 |
-enableFastLaunch | 將 AM 相依項上傳至 HDFS,以加快後續啟動速度。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作,以處理此特定功能。 |
-flex <應用程式名稱或 ID> | 變更應用程式/長期執行服務元件的執行容器數量。需要 -component 選項。如果提供名稱,則必須提供 appType,除非它是預設的 yarn-service。如果提供 ID,則會查詢 appType。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作,以處理此特定功能。 |
-help | 顯示所有指令的說明。 |
-instances <元件執行個體> | 與 -upgrade 選項搭配使用,以觸發應用程式的指定元件執行個體升級。也與 -decommission 選項搭配使用,以解除指定元件執行個體。多個執行個體應以逗號分隔。 |
-kill <應用程式 ID> | 終止應用程式。可提供以空格分隔的應用程式組 |
-launch <應用程式名稱> <檔案名稱> | 從規格檔案啟動應用程式(儲存規格並啟動應用程式)。選項 -updateLifetime 和 -changeQueue 可用於變更檔案中提供的數值。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作來處理此特定功能。 |
-list | 列出應用程式。支援選擇性使用 -appTypes 來根據應用程式類型篩選應用程式,-appStates 來根據應用程式狀態篩選應用程式,以及 -appTags 來根據應用程式標籤篩選應用程式。 |
-movetoqueue <應用程式 ID> | 將應用程式移至不同的佇列。已棄用的指令。請改用「changeQueue」。 |
-queue <佇列名稱> | 與 movetoqueue 指令搭配使用,以指定要將應用程式移至哪個佇列。 |
-save <應用程式名稱> <檔案名稱> | 儲存應用程式的規格檔案。選項 -updateLifetime 和 -changeQueue 可用於變更檔案中提供的數值。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作來處理此特定功能。 |
-start <應用程式名稱> | 啟動先前儲存的應用程式。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作來處理此特定功能。 |
-status <應用程式 ID 或應用程式名稱> | 列印應用程式的狀態。如果提供應用程式 ID,它會列印一般 YARN 應用程式狀態。如果提供名稱,它會根據應用程式的自訂實作列印應用程式特定狀態,而且必須指定 -appTypes 選項,除非它是預設的 yarn-service 類型。請確保對應於 appType 的架構已提供適當的用戶端實作來處理此特定功能。 |
-stop <應用程式名稱或 ID> | 正常停止應用程式(稍後可以再次啟動)。如果提供名稱,則必須提供 appType,除非它是預設的 yarn-service。如果提供 ID,則會查詢 appType。支援 -appTypes 選項,以指定要使用的用戶端實作。請確保對應於 appType 的架構已提供適當的用戶端實作來處理此特定功能。 |
-updateLifetime <Timeout> | 從現在開始更新應用程式的逾時。可以使用「appId」選項傳遞 ApplicationId。逾時值以秒為單位。 |
-updatePriority <Priority> | 更新應用程式的優先順序。可以使用「appId」選項傳遞 ApplicationId。 |
列印應用程式報告/終止應用程式/管理長時間執行的應用程式
applicationattempt
用法:yarn applicationattempt [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-help | 說明 |
-list <ApplicationId> | 列出給定應用程式的應用程式嘗試。 |
-status <應用程式嘗試 ID> | 列印應用程式嘗試的狀態。 |
列印 applicationattempt(s) 報告
classpath
用法:yarn classpath [--glob |--jar <路徑> |-h |--help]
COMMAND_OPTION | 說明 |
---|---|
--glob |
展開萬用字元 |
--jar 路徑 |
將類別路徑寫入名為 路徑 的 jar 中的清單 |
-h , --help |
列印說明 |
列印取得 Hadoop jar 和所需函式庫所需的類別路徑。如果未帶引數呼叫,則會列印由命令腳本設定的類別路徑,其中可能包含類別路徑條目中的萬用字元。其他選項會在萬用字元展開後列印類別路徑,或將類別路徑寫入 jar 檔案的清單中。後者適用於無法使用萬用字元且展開的類別路徑超過最大支援的命令列長度的環境。
container
用法:yarn container [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-help | 說明 |
-list <應用程式嘗試 ID> | 列出應用程式嘗試的容器。 |
-status <容器 ID> | 列印容器的狀態。 |
列印 container(s) 報告
jar
用法:yarn jar <jar> [mainClass] args...
執行 jar 檔案。使用者可以將其 YARN 程式碼打包到 jar 檔案中,並使用此命令執行它。
logs
用法:yarn logs -applicationId <應用程式 ID> [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-applicationId <應用程式 ID> | 指定應用程式 ID |
-appOwner <AppOwner> | AppOwner(如果未指定,假設為目前使用者) |
-containerId <ContainerId> | ContainerId(如果指定節點位址,則必須指定) |
-help | 說明 |
-nodeAddress <NodeAddress> | 格式為 nodename:port 的 NodeAddress(如果指定容器 ID,則必須指定) |
傾印容器記錄
node
用法:yarn node [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-all | 與 -list 搭配使用,以列出所有節點。 |
-list | 列出所有正在執行的節點。支援選擇性使用 -states,根據節點狀態篩選節點,以及 -all 列出所有節點。 |
-states <States> | 與 -list 搭配使用,根據以逗號分隔的節點狀態輸入清單篩選節點。 |
-status <NodeId> | 列印節點的狀態報告。 |
列印節點報告
queue
用法:yarn queue [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-help | 說明 |
-status <QueueName> | 列印佇列的狀態。 |
列印佇列資訊
version
用法:yarn version
列印 Hadoop 版本。
envvars
用法:yarn envvars
顯示已計算的 Hadoop 環境變數。
對 Hadoop 群集管理員有用的指令。
daemonlog
動態取得/設定精靈中由合格類別名稱識別的記錄的記錄層級。請參閱 Hadoop 指令手冊以取得更多資訊。
nodemanager
用法:yarn nodemanager
啟動 NodeManager
proxyserver
用法:yarn proxyserver
啟動 Web 代理伺服器
resourcemanager
用法:yarn resourcemanager [-format-state-store]
COMMAND_OPTIONS | 說明 |
---|---|
-format-state-store | 格式化 RMStateStore。這會清除 RMStateStore,如果不再需要過去的應用程式,這會很有用。這應該只在 ResourceManager 沒有執行時執行。 |
-remove-application-from-state-store <appId> | 從 RMStateStore 中移除應用程式。這應該只在 ResourceManager 沒有執行時執行。 |
-format-conf-store | 格式化 YarnConfigurationStore。這會清除 YarnConfigurationStore 下的持續排程器設定。這應該只在 ResourceManager 沒有執行時執行。 |
-convert-fs-configuration [-y|yarnsiteconfig] [-f|fsconfig] [-r|rulesconfig] [-o|output-directory] [-p|print] [-c|cluster-resource] | 警告:此功能為實驗性質,不適用於生產環境!開發仍在進行中,因此不應將轉換器視為已完成! 將指定的 Fair Scheduler 組態轉換為 Capacity Scheduler 組態。需要兩個強制性的輸入檔案。首先,yarn-site.xml 具有下列格式:[-y|yarnsiteconfig [<yarn-site.xml 檔案路徑>]。其次,fair-scheduler.xml 具有下列格式:[-f|fsconfig [<fair-scheduler.xml 檔案路徑>]。如果 yarn-site.xml 中有對 fair-scheduler.xml 的參照,且屬性為「yarn.scheduler.fair.allocation.file」,則此組態並非強制性。如果同時定義這兩個選項,則 -f 選項優先。組態檔案的輸出目錄也應指定為:[-o|output-directory\ <目錄>]。也可以指定一個選用的規則組態檔案,格式如下:[-r|rulesconfig <轉換規則檔案路徑>]。規則組態檔案的格式為屬性檔案。有一個額外的 [-p|print] 參數,為選用。如果已定義,組態將發送到主控台。在正常操作中,此指令的輸出檔案 (yarn-site.xml 和 capacity-scheduler.xml) 會產生到指定的輸出目錄。如果任何佇列有設定為百分比值的最大資源,則需要指定叢集資源參數 ([-c|cluster-resource] <資源>])。資源字串的格式與 fair-scheduler.xml 中相同。) |
啟動 ResourceManager
rmadmin
用法
Usage: yarn rmadmin -refreshQueues -refreshNodes [-g|graceful [timeout in seconds] -client|server] -refreshNodesResources -refreshSuperUserGroupsConfiguration -refreshUserToGroupsMappings -refreshAdminAcls -refreshServiceAcl -getGroups [username] -addToClusterNodeLabels <"label1(exclusive=true),label2(exclusive=false),label3"> -removeFromClusterNodeLabels <label1,label2,label3> (label splitted by ",") -replaceLabelsOnNode <"node1[:port]=label1,label2 node2[:port]=label1,label2"> [-failOnUnknownNodes] -directlyAccessNodeLabelStore -refreshClusterMaxPriority -updateNodeResource [NodeID] [MemSize] [vCores] ([OvercommitTimeout]) or -updateNodeResource [NodeID] [ResourceTypes] ([OvercommitTimeout]) -transitionToActive [--forceactive] <serviceId> -transitionToStandby <serviceId> -getServiceState <serviceId> -getAllServiceState -checkHealth <serviceId> -help [cmd]
COMMAND_OPTIONS | 說明 |
---|---|
-refreshQueues | 重新載入佇列的 ACL、狀態和排程器特定屬性。ResourceManager 將重新載入 mapred-queues 組態檔案。 |
-refreshNodes [-g|graceful [超時時間(秒)] -client|server] | 重新整理 ResourceManager 上的 hosts 資訊。這裡的 [-g|graceful [超時時間(秒)] -client|server] 為選用,如果我們指定超時時間,則 ResourceManager 將在將 NodeManager 標記為已停用前等待超時。-client|server 表示超時追蹤應由用戶端或 ResourceManager 處理。用戶端追蹤會封鎖,而伺服器端追蹤則不會。省略超時時間或將超時時間設為 -1,表示無限期超時。已知問題:如果發生 RM HA 故障轉移,伺服器端追蹤將立即停用。 |
-refreshNodesResources | 重新整理 ResourceManager 上 NodeManager 的資源。 |
-refreshSuperUserGroupsConfiguration | 重新整理超級使用者代理群組對應。 |
-refreshUserToGroupsMappings | 重新整理使用者對群組的對應。 |
-refreshAdminAcls | 重新整理 ResourceManager 管理的 ACL |
-refreshServiceAcl | 重新載入服務層級授權政策檔案,ResourceManager 將重新載入授權政策檔案。 |
-getGroups [使用者名稱] | 取得指定使用者所屬的群組。 |
-addToClusterNodeLabels <“label1(exclusive=true),label2(exclusive=false),label3”> | 新增至叢集節點標籤。預設獨佔為 true。 |
-removeFromClusterNodeLabels <label1,label2,label3> (標籤以「,」分隔) | 從叢集節點標籤中移除。 |
-replaceLabelsOnNode <“node1[:port]=label1,label2 node2[:port]=label1,label2”> [-failOnUnknownNodes] | 取代節點上的標籤(請注意,我們目前不支援在單一主機上指定多個標籤。)-failOnUnknownNodes 為選用,當我們設定此選項時,如果指定的節點不存在,將會失敗。 |
-directlyAccessNodeLabelStore | 此選項已棄用,將在未來版本中移除。直接存取節點標籤儲存,使用此選項後,所有與節點標籤相關的操作將不會連線 RM。它們將直接存取/修改已儲存的節點標籤。預設為 false(透過 RM 存取)。請注意:如果您將 yarn.node-labels.fs-store.root-dir 設定為本機目錄(而非 NFS 或 HDFS),此選項僅在命令於執行 RM 的機器上執行時才會運作。 |
-refreshClusterMaxPriority | 重新整理叢集最大優先順序 |
-updateNodeResource [節點 ID] [記憶體大小] [vCore] ([超額提交逾時]) | 更新特定節點上的資源。 |
-updateNodeResource [節點 ID] [資源類型] ([超額提交逾時]) | 更新特定節點上的資源類型。資源類型為資源管理員中任何可用資源的逗號分隔鍵值對。例如,memory-mb=1024Mi,vcores=1,resource1=2G,resource2=4m |
-transitionToActive [–forceactive] [–forcemanual] <服務 ID> | 將服務轉換為 Active 狀態。如果使用 –forceactive 選項,請嘗試讓目標處於 active 狀態,而不檢查是否沒有 active 節點。如果啟用了自動故障轉移,則無法使用此命令。雖然您可以透過 –forcemanual 選項覆寫此設定,但您需要小心。如果啟用了自動故障轉移,則無法使用此命令。 |
-transitionToStandby [–forcemanual] <服務 ID> | 將服務轉換為 Standby 狀態。如果啟用了自動故障轉移,則無法使用此命令。雖然您可以透過 –forcemanual 選項覆寫此設定,但您需要小心。 |
-getServiceState <服務 ID> | 傳回服務的狀態。 |
-getAllServiceState | 傳回所有服務的狀態。 |
-checkHealth <服務 ID> | 要求服務執行健康檢查。如果檢查失敗,RMAdmin 工具將退出並顯示非零退出代碼。 |
-help [cmd] | 顯示指定命令的說明,如果未指定任何命令,則顯示所有命令的說明。 |
執行 ResourceManager 管理員用戶端
用法:yarn schedulerconf [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-add <“queuePath1:key1=val1,key2=val2;queuePath2:key3=val3”> | 要新增的佇列及其佇列組態的分號分隔值。此範例新增佇列「queuePath1」(完整路徑名稱),其佇列組態為 key1=val1 和 key2=val2。它也新增佇列「queuePath2」,其佇列組態為 key3=val3。 |
-remove <“queuePath1;queuePath2”> | 要移除的分號分隔佇列。此範例移除 queuePath1 和 queuePath2 佇列(完整路徑名稱)。注意:佇列必須先進入 STOPPED 狀態,才能刪除。 |
-update <“queuePath1:key1=val1,key2=val2;queuePath2:key3=val3”> | 要更新其組態的分號分隔佇列值。此範例設定 queuePath1(完整路徑名稱)佇列組態的 key1=val1 和 key2=val2,並設定 queuePath2 佇列組態的 key3=val3。 |
-global <key1=val1,key2=val2> | 更新排程器全域組態。此範例設定排程器全域組態的 key1=val1 和 key2=val2。 |
更新排程器組態。請注意,此功能處於 alpha 階段,可能會變更。
用法:yarn scmadmin [選項]
COMMAND_OPTIONS | 說明 |
---|---|
-help | 說明 |
-runCleanerTask | 執行清理器任務 |
執行共用快取管理員管理員用戶端
用法:yarn sharedcachemanager
啟動共用快取管理員
用法:yarn timelineserver
啟動 TimeLineServer
用法:yarn registrydns
啟動 RegistryDNS 伺服器
檔案 | 說明 |
---|---|
etc/hadoop/hadoop-env.sh | 此檔案儲存所有 Hadoop shell 命令使用的全域設定。 |
etc/hadoop/yarn-env.sh | 此檔案儲存所有 YARN shell 命令使用的覆寫設定。 |
etc/hadoop/hadoop-user-functions.sh | 此檔案允許進階使用者覆寫部分 shell 功能。 |
~/.hadooprc | 此檔案儲存個別使用者的個人環境。它會在 hadoop-env.sh 、hadoop-user-functions.sh 和 yarn-env.sh 檔案之後處理,且可以包含相同的設定。 |