JMX服务器中的Yarn调度程序队列配置错误

时间:2018-02-08 13:00:28

标签: hadoop yarn

我在YARN中定义了两个节点标签:streamonline,每个标签包括3个节点,1024 MB RAM和1个核心。 (总计有6个nodemanager)。我定义了两个队列streamQonlineQ,它们分别映射到标签为streamonline的节点。没有带default_partition标签的节点。所以配置了capacity_scheduler.xml:

<!-- configuration of queue-root -->


<property> 
  <name>yarn.scheduler.capacity.root.queues</name> 
  <value>streamQ,onlineQ</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.accessible-node-labels</name> 
  <value>*</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.accessible-node-labels.stream.capacity</name> 
  <value>100</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.accessible-node-labels.online.capacity</name> 
  <value>100</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.default-node-label-expression</name> 
  <value>*</value> 
</property>


 <!-- configuration of queue-streamQ -->


<property> 
  <name>yarn.scheduler.capacity.root.streamQ.capacity</name> 
  <value>50</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.streamQ.maximum-capacity</name> 
  <value>100</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.streamQ.accessible-node-labels</name> 
  <value>stream</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.streamQ.accessible-node-labels.stream.capacity</name> 
  <value>100</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.streamQ.accessible-node-labels.online.capacity</name> 
  <value>0</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.streamQ.default-node-label-expression</name> 
  <value>stream</value> 
</property>


<!-- configuration of queue-streamQ -->


<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.capacity</name> 
  <value>50</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.maximum-capacity</name> 
  <value>100</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.accessible-node-labels</name> 
  <value>online</value> 
</property>

<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.accessible-node-labels.online.capacity</name> 
  <value>100</value>
</property>

<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.accessible-node-labels.stream.capacity</name> 
  <value>0</value>
</property>

<property> 
  <name>yarn.scheduler.capacity.root.onlineQ.default-node-label-expression</name> 
  <value>online</value> 
</property>

</configuration>

当我在onlineQ队列上运行应用程序提交时,它只使用来自在线标记节点的资源。在stream标签的节点已关闭的情况下(意味着只有3个标签为online的节点管理器正在运行),我在YARN JMX服务器数据中遇到了一些不一致的地方,它显示:

根队列数据:

{
    "name" : "Hadoop:service=ResourceManager,name=QueueMetrics,q0=root",
    "modelerType" : "QueueMetrics,q0=root",
    "tag.Queue" : "root",
    "tag.Context" : "yarn",
    "tag.Hostname" : "namenode",
    "AvailableMB" : 3072,
    "AvailableVCores" : 3,
  }

streamQ数据:

{
    "name" : "Hadoop:service=ResourceManager,name=QueueMetrics,q0=root,q1=streamQ",
    "modelerType" : "QueueMetrics,q0=root,q1=streamQ",
    "tag.Queue" : "root.streamQ",
    "tag.Context" : "yarn",
    "tag.Hostname" : "namenode",
    "AvailableMB" : 1536,
    "AvailableVCores" : 1,
  }

onlineQ数据:

{
    "name" : "Hadoop:service=ResourceManager,name=QueueMetrics,q0=root,q1=onlineQ",
    "modelerType" : "QueueMetrics,q0=root,q1=onlineQ",
    "tag.Queue" : "root.onlineQ",
    "tag.Context" : "yarn",
    "tag.Hostname" : "namenode",
    "AvailableMB" : 1536,
    "AvailableVCores" : 1,
  }

问题出在AvailableMBAvailableVCores。根队列数据是所希望的,但我期望在streamQ队列中,资源为零,在onlineQ队列中,资源为3072MB和3核。但事实并非如此!这是因为属性:

<property> 
<name>yarn.scheduler.capacity.root.streamQ.capacity</name> 
<value>50</value> 
</property>

<property> 
<name>yarn.scheduler.capacity.root.onlineQ.capacity</name> 
<value>50</value> 
</property>

但这应该只适用于没有标签的节点资源(在default_partition中)!有什么问题?

1 个答案:

答案 0 :(得分:0)

我将Hadoop版本从2.7.5更改为2.8.3后解决了。