gpt4 book ai didi

hadoop - 从命令行获取 yarn 配置

转载 作者:可可西里 更新时间:2023-11-01 14:10:58 28 4
gpt4 key购买 nike

在 EMR 中,有没有一种方法可以使用 yarn 命令在给定配置键的情况下获取配置的特定值?

例如我想做这样的事情

yarn get-config yarn.scheduler.maximum-allocation-mb

最佳答案

这有点不直观,但结果是 hdfs getconf命令能够检查 YARN 和 MapReduce 的配置属性,而不仅仅是 HDFS。

> hdfs getconf -confKey fs.defaultFS
hdfs://localhost:19000

> hdfs getconf -confKey dfs.namenode.name.dir
file:///Users/chris/hadoop-deploy-trunk/data/dfs/name

> hdfs getconf -confKey yarn.resourcemanager.address
0.0.0.0:8032

> hdfs getconf -confKey mapreduce.framework.name
yarn

使用它的一个好处是您将看到 Hadoop 实际使用的任何配置属性的实际、最终结果。这将解释一些更高级的配置模式,例如在 XML 文件中使用 XInclude 或属性替换,如下所示:

  <property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>

任何尝试直接解析 XML 文件的脚本方法都不太可能像在 Hadoop 内部完成的那样准确匹配实现,因此最好询问 Hadoop 本身。

您可能想知道为什么 hdfs 命令可以获得 YARN 和 MapReduce 的配置属性。好问题!需要将 MapReduce 的 JobConf 实例注入(inject)到通过反射创建的某些对象中的实现有点巧合。相关代码可见:

https://github.com/apache/hadoop/blob/release-2.7.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java#L82-L114

此代码作为运行 hdfs getconf 命令的一部分执行。通过触发对 JobConf 的引用,它会强制类加载和静态初始化相关的 MapReduce 和 YARN 类,添加 yarn-default.xml、yarn-site.xml、mapred-default.xml 和 mapred- site.xml 到一组有效的配置文件。

由于这是实现的巧合,因此某些行为可能会在未来的版本中发生变化,但这将是向后不兼容的变化,因此我们绝对不会在当前的 Hadoop 2.x 中更改该行为线。 Apache Hadoop Compatibility政策 promise 在主要版本行中向后兼容,因此您可以相信这至少会在 2.x 版本行中继续工作。

关于hadoop - 从命令行获取 yarn 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34666416/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com