纱线中的节点状态是什么?

时间:2017-04-01 02:06:14

标签: hadoop apache-spark yarn

我想使用yarn来跟踪节点的状态。所以,我yarn node -list看我的节点。然后当我想列出某个状态的所有节点时,我尝试yarn node -list -states <State>

在webUI中,我可以点击nodes,我可以看到有时我的节点是UNHEALTHY。为什么我不能从命令行做同样的事情而yarn node -list -states UNHEALTHY

或者,是否有人可以提供给我的参考资料,告诉我哪些states可供我使用此命令yarn node -list -states <State>

我找不到它here

2 个答案:

答案 0 :(得分:1)

运行错误的命令行

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 根据您的版本,您可以检查枚举的值。这是hadoop 2.7.1 NodeState

的链接

通常,

yarn node -list -states UNHEALTHY 
如果你从纱线的角度来看有不健康的节点,

应该可以正常工作

答案 1 :(得分:1)

您好,如果您可以直接从纱线项目中找到所有州。例如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