2017-04-01 17 views
0

我想用yarn來跟蹤我的節點的狀態。所以,我做yarn node -list看到我的節點。然後,當我想列出某個狀態下的所有節點時,我嘗試執行yarn node -list -states <State>紗線中的節點狀態是什麼?

在webUI中,我可以點擊nodes,我可以看到有時我的節點是UNHEALTHY。爲什麼我不能從命令行以類似的方式做yarn node -list -states UNHEALTHY

或者,有人可以給我,這將告訴我哪個states可供我使用此命令yarn node -list -states <State>

我找不到它here

回答

0

運行錯誤的命令行

yarn node -list -states any 

給你這樣的例外:

Exception in thread "main" java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.yarn.api.records.NodeState.ANY 
at java.lang.Enum.valueOf(Enum.java:238) 
at org.apache.hadoop.yarn.api.records.NodeState.valueOf(NodeState.java:27) 
at org.apache.hadoop.yarn.client.cli.NodeCLI.run(NodeCLI.java:113) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
at org.apache.hadoop.yarn.client.cli.NodeCLI.main(NodeCLI.java:62) 

所以下面的枚舉用於:org.apache.hadoop .yarn.api.records.NodeState 根據您的版本,您可以檢查Enum的值。這裏是鏈接hadoop 2.7.1 NodeState

通常情況下,

yarn node -list -states UNHEALTHY 

應該只是罰款,如果你有但從

0

喜絲點不健康的節點,如果你可以從紗線項目直接找到所有狀態。如實施例HADOOP爲節點2.7.3版本中列出的狀態:

package org.apache.hadoop.yarn.api.records; 

import org.apache.hadoop.classification.InterfaceAudience.Public; 
import org.apache.hadoop.classification.InterfaceStability.Unstable; 

/** 
* <p>State of a <code>Node</code>.</p> 
*/ 
@Public 
@Unstable 
public enum NodeState { 
    /** New node */ 
    NEW, 

    /** Running node */ 
    RUNNING, 

    /** Node is unhealthy */ 
    UNHEALTHY, 

    /** Node is out of service */ 
    DECOMMISSIONED, 

    /** Node has not sent a heartbeat for some configured time threshold*/ 
    LOST, 

    /** Node has rebooted */ 
    REBOOTED; 

    public boolean isUnusable() { 
    return (this == UNHEALTHY || this == DECOMMISSIONED || this == LOST); 
    } 
} 

yarn node state