2013-12-17 4 views
0

Я пытаюсь получить Hadoop и Map/Reduce, чтобы начать использовать отдельный временный каталог вместо/tmp в моем корневом каталоге.Временная директория Hadoop/MR

Я добавил следующее мое ядро-site.xml конфигурационный файл:

<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/data/tmp</value> 
</property> 

Я добавил следующее в мой MapReduce-site.xml конфигурационный файл:

<property> 
    <name>mapreduce.cluster.local.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/local</value> 
</property> 
<property> 
    <name>mapreduce.jobtracker.system.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/system</value> 
</property> 
<property> 
    <name>mapreduce.jobtracker.staging.root.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/staging</value> 
</property> 
<property> 
    <name>mapreduce.cluster.temp.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/temp</value> 
</property> 

Независимо от того, какую работу я выполняю, он все еще выполняет всю промежуточную работу в каталоге/tmp. Я смотрел, как это делается через df -h, и когда я туда захожу, есть все временные файлы, которые он создает.

Я что-то упустил из конфигурации?

Это 10 узловой кластер Linux CentOS, работающий под управлением 2.1.0.2.0.6.0 Hadoop/Yarn Mapreduce.

EDIT: После некоторых дальнейших исследований настройки, похоже, работают с моими ячейками управления и namednode/secondarynamed. Только на узлах данных это не работает, и только с временными выходными файлами mapreduce, которые все еще идут на/tmp на моем корневом диске, а не на моем монтировании данных, где я установлен в файлах конфигурации.

+0

Вы внесли изменения в каждый из конфигурационных файлов (в каждом из узлов)? Узлы собирают свои собственные файлы конфигурации, а не узлы главного узла. – cabad

+0

Мы используем Ambari для администрирования кластера, и он заботится о том, чтобы отменить изменения ко всем другим узлам узла управления. Я проверил после внесения изменений, что все узлы core-site.xml и mapred-site.xml-файлы имели одинаковые изменения конфигурации. – NotSoCleverDBA

ответ

0

Мне кажется, вам нужно указать это свойство в hdfs-site.xml, а не core-site.xml. Попробуйте установить это свойство в hdfs-site.xml. Я надеюсь, что это решит вашу проблему.

+0

Там была куча настроек каталога, однако hasoop.tmp.dir не был указан как действительное свойство на эту страницу: – NotSoCleverDBA

+0

[Свойства HDFS-SITE.XML] (https://hadoop.apache.org/docs/current2/hadoop-project-dist/hadoop-hdfs/hdfs-default. xml) – NotSoCleverDBA

+0

Я думаю, вы должны попробовать добавить его в hdfs-site.xml, а затем проверить, работает ли он – Binary01

0

Свойства mapreduce должны быть в mapred-site.xml.

1

Если вы работаете в Hadoop 2.0, тогда необходимо указать имя файла конфигурации, который требуется изменить, mapred-site.xml, а не mapreduce-site.xml.

Примера можно найти на сайте Apache: http://hadoop.apache.org/docs/r2.3.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

и он использует имя mapreduce.cluster.local.dir свойства со значением по умолчанию ${hadoop.tmp.dir}/mapred/local

Попробуйте переименование mapreduce-site.xml файла mapred-site.xml в ваших /etc/hadoop/conf/ каталогах и посмотреть если это исправление.

Если вы используете Ambari, вы должны быть в состоянии просто пойти использовать кнопку «Добавить объект» в разделе MapReduce2/Пользовательские mapred-site.xml, введите «mapreduce.cluster.local.dir» для имя свойства и список каталогов, разделенных запятыми, которые вы хотите использовать.

0

Я столкнулся с аналогичной проблемой, когда некоторые узлы не соблюдали hasoop.tmp.dir, установленные в конфиге.

Перезагрузка ошибочных узлов исправила это для меня.

Смежные вопросы