Где HDFS хранит данные
Я пытаюсь понять, где хранит данные в HDFS. Я имею в виду конфигурационные файлы: core-site.xml
и hdfs-site.xml
Свойством, которое я установил, является:
-
В core-site.xml
:
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>
-
В hdfs-site.xml
:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/hdfs/datanode</value>
</property>
В приведенном выше расположении, например dfs.datanode.data.dir
, блоки данных должны храниться в этом каталоге. Правильно ли это?
Я ссылался на ссылку apache hadoop, и из этого я вижу следующее:
-
core-default.xml
: hadoop.tmp.dir
→ База для других временных каталогов.
-
hdfs-default.xml
dfs.datanode.data.dir
→ Определяет, где в локальной файловой системе данные DFS node должны хранить свои блоки.
Значение по умолчанию для этого свойства: → file://${hadoop.tmp.dir}/dfs/data
Так как я явно предоставил значение для dfs.datanode.data.dir
(hdfs-site.xml
), означает ли это, что данные будут храниться в этом месте? Если да, добавит ли dfs/data в каталог ${dfs.datanode.data.dir}
, в частности, он станет → /hadoop/hdfs/datanode/dfs/data
?
Однако я не видел, чтобы эта структура каталогов создавалась.
Одно наблюдение, которое я видел в моем env:
Я видел, что после запуска некоторых программ MapReduce этот каталог создается, а именно:
/hadoop/tmp/dfs/data
создается.
Итак, не уверен, что данные будут храниться в каталоге, как это было предложено с помощью свойства dfs.datanode.data.dir.
Есть ли у кого-то подобный опыт?
Ответы
Ответ 1
Данные для файлов hdfs будут сохранены в каталоге, указанном в dfs.datanode.data.dir
, а суффикс /dfs/data
, который вы видите в значении по умолчанию, не будет добавлен.
Если вы отредактируете hdfs-site.xml
, вам придется перезапустить службу DataNode, чтобы изменения вступили в силу. Также помните, что изменение значения исключает возможность службы DataNode предоставлять блоки, которые были сохранены в предыдущем местоположении.
Наконец, над вашими значениями указаны file:/...
вместо file://...
. Для URI файла требуется дополнительная косая черта, так что это может привести к тому, что эти значения вернутся к значениям по умолчанию.