J'essaie de comprendre où hadoop stocke les données dans HDFS. Je me réfère aux fichiers de configuration à savoir: core-site.xml
et hdfs-site.xml
La propriété que j'ai définie est:
Dans core-site.xml
:
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>
Dans 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>
Avec l'arrangement ci-dessus, comme dfs.datanode.data.dir
, les blocs de données doivent être stockés dans ce répertoire. Est-ce correct?
J'ai fait référence au lien Apache hadoop, et de là je vois ceci:
core-default.xml
: hadoop.tmp.dir
-> Une base pour d'autres répertoires temporaires.
hdfs-default.xml
dfs.datanode.data.dir
-> Détermine où sur le système de fichiers local un nœud de données DFS doit stocker ses blocs.
La valeur par défaut de cette propriété étant -> file://${hadoop.tmp.dir}/dfs/data
Puisque j'ai explicitement fourni la valeur de dfs.datanode.data.dir
(hdfs-site.xml
), cela signifie-t-il que les données seraient stockées à cet emplacement? Si tel est le cas, dfs/data serait-il ajouté au répertoire dans ${dfs.datanode.data.dir}
, deviendrait-il précisément -> /hadoop/hdfs/datanode/dfs/data
?
Cependant, je n'ai pas vu cette structure de répertoires créée.
Une observation que j'ai vue dans mon env:
J'ai vu qu'après avoir exécuté certains programmes MapReduce, ce répertoire est créé à savoir: /hadoop/tmp/dfs/data
est en cours de création.
Donc, vous ne savez pas si les données sont stockées dans le répertoire comme suggéré par la propriété dfs.datanode.data.dir.
Quelqu'un at-il une expérience similaire?
Les données des fichiers hdfs seront stockées dans le répertoire spécifié dans dfs.datanode.data.dir
, et le /dfs/data
le suffixe que vous voyez dans la valeur par défaut ne sera pas ajouté.
Si vous modifiez hdfs-site.xml
, vous devrez redémarrer le service DataNode pour que la modification prenne effet. N'oubliez pas que la modification de la valeur éliminera la capacité du service DataNode à fournir des blocs qui ont été stockés à l'emplacement précédent.
Enfin, ci-dessus, vous avez vos valeurs spécifiées avec file:/...
au lieu de file://...
. Les URI de fichiers ont besoin de cette barre oblique supplémentaire, de sorte que ces valeurs peuvent revenir aux valeurs par défaut.