hadoop - Yarn Resource Manager UI 中的 Num Off Switch Containers 是什么意思?

标签 hadoop mapreduce hadoop-yarn hortonworks-data-platform

我有一个 ETL 作业占用大量 CPU 和内存并运行了很长时间。我在调试时观察到的第一件事如下(来自资源管理器 GUI 上的作业)

  • Num Node Local Containers(满足)= 6
  • Num Rack Local Containers(满足)= 00
  • Num Off Switch Containers(满足)= 11367

我们只有两个架子。我需要帮助回答以下三个问题

  1. Num Off Switch Container 的含义是什么?
  2. 我如何识别这些“关闭开关”容器以及它们在哪些节点上运行?
  3. 关闭开关容器是否会导致作业处理时间变慢?

最佳答案

1 .Num Off Switch Containers 是什么意思? 上面的例子是延迟调度器的off switch locality:-

                | router|
              +-----------+
             /             \
    +-----------+        +-----------+
    |rack switch|        |rack switch|
    +-----------+        +-----------+
    | data node |        | data node |
    +-----------+        +-----------+
    | data node |        | data node |
    +-----------+        +-----------+

Delay scheduler 的数据局部性(1.Node local 2. Rack local 3. off switch)是最糟糕的场景,内存和 vcores 通过交换机分配到不同的机架上,更高的带宽。

延迟调度程序将传入任务分配给位于不同机架上的关闭开关节点,以避免任务饥饿

对于 YARN 配置变量中的不同调度器,节点和机架阈值存在:-

容量表:- 有了这个属性 yarn.scheduler.capacity.rack-locality-additional-delay ,关闭开关容器分配的松弛位置就完成了。

容量调度器.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.如何识别这些“关闭开关”容器以及它们运行在哪些节点上?

要查看应用程序的容器,我认为我们需要通过尝试 ID 转到特定的应用程序尝试,在那里我们可以找到容器及其节点。我没有在 RM ui 中找到任何指向关闭开关容器的直接链接

3.关闭开关容器是否会导致作业处理时间变慢?

是的,从上面我们可以得出结论,网络开销会减慢作业处理速度。

关于hadoop - Yarn Resource Manager UI 中的 Num Off Switch Containers 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439549/

相关文章:

sql - regexp_replace 配置单元中的正则表达式

hadoop - 从ISO转换为自定义格式Pig

hadoop - 如何在将数据插入存储桶时合并由配置单元创建的小文件?

python - 如何具体确定MRJob中每个 map 步骤的输入?

Hadoop 多节点集群

java - 使用 java 将 hdfs 文件复制到另一个 hdfs 位置

hadoop - sqoop导入到与Hive仓库目录不同的目录

python - Pydoop mapreduce "AttributeError: module ' wordcount_minimal' 没有属性 '__main__' "

java - 为 oozie 工作流运行单个应用程序主机

hadoop - 为什么不能从 YARN 请求超过 32 个内核来运行作业?