Подтвердить что ты не робот

Что должно быть hadoop.tmp.dir?

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Позвольте мне добавить немного больше ответа kkrugler:

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

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

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

Ответ 3

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

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