2016-01-07 5 views

ответ

14

Это немного не интуитивное, но оказывается, что команда hdfs getconf может проверять свойство конфигурации для ПРЯЖИ и 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. Это могло бы объяснить некоторые из более продвинутых моделей конфигурации, например, использование XInclude в файлах XML или замены собственности, например:

<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 в некоторые объекты, созданные с помощью отражения. Соответствующий код виден здесь:

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 обязывает к обратной совместимости в пределах основной версии, поэтому вы можете быть уверены, что это будет продолжаться, по крайней мере, в версии 2.x.

+0

работает как шарм :) –

+0

все еще работает. Спасибо, что поделился. –