Yarn Resource Manager UI 中的 Num Off Switch Containers 是什么意思?
What does Num Off Switch Containers mean in Yarn Resource Manager UI?
我有一个 ETL 作业占用了很多 CPU 内存和 运行 很长一段时间。我在调试时观察到的第一件事如下(来自资源管理器 GUI 上的作业)
- Num 节点本地容器(满足)= 6
- Num Rack Local Containers(满足)= 00
- Num Off Switch Containers(满足)= 11367
我们只有两个架子。我需要帮助回答以下三个问题
- Num Off Switch Containers 是什么意思?
- 如何识别这些 "off switch" 容器以及它们 运行 在哪个节点上?
- 关闭开关容器是否会导致作业处理时间变慢?
1.Num Off Switch Containers 是什么意思?
上面的例子是 off switch locality
by Delay Scheduler :-
| router|
+-----------+
/ \
+-----------+ +-----------+
|rack switch| |rack switch|
+-----------+ +-----------+
| data node | | data node |
+-----------+ +-----------+
| data node | | data node |
+-----------+ +-----------+
这是延迟调度器 数据局部性(1.Node 局部性 2. 机架局部性 3. 关闭开关)的最坏情况,内存和 vcores 正在分配在交换机上的不同机架上以及更高的带宽。
延迟调度程序将传入任务分配给位于不同机架上的关闭开关节点以避免任务饥饿
对于 YARN 配置变量中的不同调度器,节点和机架阈值存在:-
容量表 :-
有了这个 属性 yarn.scheduler.capacity.rack-locality-additional-delay
,关闭开关容器分配的放松位置就完成了。
容量-scheduler.xml
<property>
<name>yarn.scheduler.capacity.node-locality-delay</name>
<value>-1</value>
<description>Number of missed scheduling opportunities after which the CapacityScheduler attempts to schedule rack-local containers.
Typically this should be set to number of racks in the cluster, this
feature is disabled by default, set to -1.
</description>
</property>
https://issues.apache.org/jira/browse/YARN-4189 - 用于改进的 JIRA
如果集群使用公平调度程序:-
https://hadoop.apache.org/docs/r2.7.4/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
yarn.scheduler.fair.locality.threshold.rack
https://cs.stanford.edu/~matei/papers/2010/eurosys_delay_scheduling.pdf用于延迟调度。
2.How 我可以识别这些 "off switch" 容器以及它们 运行 在哪个节点上吗?
要查看应用程序的容器,我相信我们需要通过尝试 ID 转到特定的应用程序尝试,在那里我们可以找到容器及其节点。我没有在 RM ui
中找到任何直接 link 来关闭开关容器
3.Does 关闭开关容器导致作业处理时间变慢?
是的,从上面我们可以得出结论,网络开销会减慢作业处理速度。
我有一个 ETL 作业占用了很多 CPU 内存和 运行 很长一段时间。我在调试时观察到的第一件事如下(来自资源管理器 GUI 上的作业)
- Num 节点本地容器(满足)= 6
- Num Rack Local Containers(满足)= 00
- Num Off Switch Containers(满足)= 11367
我们只有两个架子。我需要帮助回答以下三个问题
- Num Off Switch Containers 是什么意思?
- 如何识别这些 "off switch" 容器以及它们 运行 在哪个节点上?
- 关闭开关容器是否会导致作业处理时间变慢?
1.Num Off Switch Containers 是什么意思?
上面的例子是 off switch locality
by Delay Scheduler :-
| router|
+-----------+
/ \
+-----------+ +-----------+
|rack switch| |rack switch|
+-----------+ +-----------+
| data node | | data node |
+-----------+ +-----------+
| data node | | data node |
+-----------+ +-----------+
这是延迟调度器 数据局部性(1.Node 局部性 2. 机架局部性 3. 关闭开关)的最坏情况,内存和 vcores 正在分配在交换机上的不同机架上以及更高的带宽。
延迟调度程序将传入任务分配给位于不同机架上的关闭开关节点以避免任务饥饿
对于 YARN 配置变量中的不同调度器,节点和机架阈值存在:-
容量表 :-
有了这个 属性 yarn.scheduler.capacity.rack-locality-additional-delay
,关闭开关容器分配的放松位置就完成了。
容量-scheduler.xml
<property>
<name>yarn.scheduler.capacity.node-locality-delay</name>
<value>-1</value>
<description>Number of missed scheduling opportunities after which the CapacityScheduler attempts to schedule rack-local containers.
Typically this should be set to number of racks in the cluster, this
feature is disabled by default, set to -1.
</description>
</property>
https://issues.apache.org/jira/browse/YARN-4189 - 用于改进的 JIRA 如果集群使用公平调度程序:-
https://hadoop.apache.org/docs/r2.7.4/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
yarn.scheduler.fair.locality.threshold.rack
https://cs.stanford.edu/~matei/papers/2010/eurosys_delay_scheduling.pdf用于延迟调度。
2.How 我可以识别这些 "off switch" 容器以及它们 运行 在哪个节点上吗?
要查看应用程序的容器,我相信我们需要通过尝试 ID 转到特定的应用程序尝试,在那里我们可以找到容器及其节点。我没有在 RM ui
中找到任何直接 link 来关闭开关容器3.Does 关闭开关容器导致作业处理时间变慢?
是的,从上面我们可以得出结论,网络开销会减慢作业处理速度。