当前位置:  开发笔记 > 大数据 > 正文

从命令行获取纱线配置

如何解决《从命令行获取纱线配置》经验,为你挑选了1个好方法。

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

例如,我想做这样的事情

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

Chris Naurot.. 23

这有点不直观,但事实证明该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,如下所示:

  
    The address of the applications manager interface in the RM.
    yarn.resourcemanager.address
    ${yarn.resourcemanager.hostname}:8032
  

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

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

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的兼容性政策承诺的主要版本线内的向后兼容,所以你可以相信,这将继续2.x版线内至少工作.



1> Chris Naurot..:

这有点不直观,但事实证明该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,如下所示:

  
    The address of the applications manager interface in the RM.
    yarn.resourcemanager.address
    ${yarn.resourcemanager.hostname}:8032
  

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

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

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的兼容性政策承诺的主要版本线内的向后兼容,所以你可以相信,这将继续2.x版线内至少工作.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有