Что должно быть hadoop.tmp.dir? - PullRequest
25 голосов
/ 01 марта 2010

Hadoop имеет параметр конфигурации hadoop.tmp.dir, который, согласно документации, является `" Базой для других временных каталогов. " Полагаю, этот путь относится к локальной файловой системе.

Я установил это значение на /mnt/hadoop-tmp/hadoop-${user.name}. После форматирования наменода и запуска всех сервисов я вижу точно такой же путь, созданный в HDFS.

Означает ли это, hadoop.tmp.dir относится к временному местоположению на HDFS ?

Ответы [ 3 ]

31 голосов
/ 21 мая 2011

Это сбивает с толку, но hadoop.tmp.dir используется в качестве базы для временных каталогов локально, а также в HDFS . Документ не велик, но mapred.system.dir по умолчанию установлен на "${hadoop.tmp.dir}/mapred/system", и это определяет путь в HDFS , где в структуре Map / Reduce хранятся системные файлы.

Если вы хотите, чтобы они не были связаны друг с другом, вы можете отредактировать свой mapred-site.xml так, чтобы определение mapred.system.dir было чем-то, что не связано с ${hadoop.tmp.dir}

25 голосов
/ 26 января 2013

Позвольте мне добавить еще немного к ответу Ккруглера:

Существует три свойства HDFS, которые содержат hadoop.tmp.dir в своих значениях

  1. dfs.name.dir: каталог, в котором namenode хранит свои метаданные со значением по умолчанию ${hadoop.tmp.dir}/dfs/name.
  2. dfs.data.dir: каталог, в котором хранятся блоки данных HDFS, со значением по умолчанию ${hadoop.tmp.dir}/dfs/data.
  3. fs.checkpoint.dir: каталог, в котором вторичный наменод хранит свои контрольные точки, значение по умолчанию ${hadoop.tmp.dir}/dfs/namesecondary.

Вот почему вы увидели /mnt/hadoop-tmp/hadoop-${user.name} в вашей HDFS после форматирования namenode.

3 голосов
/ 02 марта 2010

Посмотрел информацию об этом. Единственное, что я мог придумать, это сообщение в Amazon Elastic MapReduce Dev Guide :

В hadoop-site.xml мы устанавливаем hadoop.tmp.dir to / Мнт / вар / Библиотека / Hadoop / TMP. / MNT это где мы устанавливаем «дополнительные» тома EC2, который может содержать гораздо больше данных, чем громкость по умолчанию. (Точная сумма зависит от типа экземпляра.) Hadoop's RunJar.java (модуль, который распаковывает входные файлы JAR) интерпретирует hadoop.tmp.dir как файловая система Hadoop путь, а не локальный путь, так что пишет в путь в HDFS вместо местный путь. HDFS монтируется под / MNT (конкретно / Мнт / вар / Библиотека / Hadoop / ДПП /. Так что вы можете запишите в него много данных.

...