web-dev-qa-db-fra.com

Où HDFS stocke les données

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.xmldfs.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?

19
CuriousMind

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.

14
RickH