Hadoop Namenode Métadonnées - fsimage et d'éditer des journaux
Je comprends que le fsimage est chargé en mémoire au démarrage et à toutes les autres transactions sont ajoutés à l'édition du journal plutôt que de la fsimage pour des raisons de performances.
La fsimage dans la mémoire sera mise à jour lorsque le namenode est redémarré. Pour plus d'efficacité, secondaire nom de nœud périodiquement un point de contrôle pour mettre à jour le fsimage de sorte que le namenode la récupération est plus rapide. Tous ces sont beaux.
Mais un point sur lequel je n'arrive pas à comprendre, c'est cela,
Permet de dire qu'un fichier existe déjà et les infos à propos de ce fichier est dans le fsimage dans la mémoire.
Maintenant, je déplacer ce fichier vers un autre emplacement, qui est mis à jour dans le journal des modifications.
Maintenant quand j'essaye de la liste de l'ancien chemin d'accès au fichier, il se plaint c'est qu'il n'existe pas ou que ce soit.
Est-ce à dire que namenode regarde le journal des modifications ainsi ce qui est contradictoire à la fin de la fsimage dans la mémoire? ou comment sait-elle que l'emplacement du fichier a changé?
OriginalL'auteur learninghuman | 2014-06-18
Vous devez vous connecter pour publier un commentaire.
Réponse est en regardant les informations dans l'édition de journaux. Si une information n'est pas disponible dans l'édition des journaux de Cette question stands vrai pour les cas d'utilisation quand on écrit le nouveau fichier hdfs. Alors que votre namenode est en cours d'exécution si vous supprimez fsimage fichier et essayez de lire le fichier hdfs il est capable de lire.
Retrait de la fsimage fichier à partir de l'exécution de namenode ne causera pas de problème avec les opérations de lecture /écriture. Lorsque nous redémarrer le namenode, il y aura des erreurs indiquant que le fichier image n'est pas trouvée.
Laissez-moi essayer de donner un peu plus d'explication pour vous aider.
Seulement sur le début jusqu'à hadoop semble fsimage fichier, dans le cas où il n'est pas là, namenode de ne pas venir et de journal pour la mise en forme du namenode.
hadoop format -namenode commande crée fsimage fichier (si l'option modifier les journaux sont présents). Après namenode fichier de démarrage des métadonnées est extraite de l'édition de journaux (et si elle ne trouve pas d'informations dans l'édition de journaux cherché thru fsimage fichier). donc fsimage fonctionne en tant que point de contrôle où inforamtion est sauvé à la dernière fois. C'est aussi une des raison du nœud secondaire maintient la synchronisation (après 1 heure /1 million de transactions) édition de journaux, de sorte que le démarrage à partir du dernier point de contrôle a pas beaucoup besoin d'être synchronisés.
si vous tournez le mode sans échec ( commande : hdfs dfsadmin -safemode entrée) et utilisez saveNamespace (commande : hdfs dfsadmin -saveNamespace), il va montrer mentionnées ci-dessous du message de journal.
OriginalL'auteur user2775185
L'ensemble du système de fichiers de l'espace de noms, y compris la "cartographie des blocs de fichiers" et les propriétés du système de fichiers, sont stockées dans un fichier appelé la FsImage.Souvenez-vous de "cartographie des blocs de fichiers" est une partie de FsImage.Ce sont stockées dans la mémoire et sur le disque.Avec FsImage, Hadoop permet aussi de stocker dans la mémoire, bloc de datanode cartographie par bloc de rapports, tandis que le nom de nœud de l'est (re)commencé et périodiquement.Ainsi, lorsque vous déplacez un fichier vers un autre emplacement, ce seront suivis dans le journal des modifications sur le disque et également lorsqu'un bloc de rapport est transmis par le nœud de données à namenode, namenode obtiendrez un up-to-date de la vue de l'endroit où les blocs sont situés sur le cluster.Donc, de cette façon, vous ne serez pas en mesure de voir les données dans le vieux-chemin d'accès depuis le bloc de rapport de mise à jour "de la cartographie des blocs pour les datanodes".Mais n'oubliez pas la mise à jour est arrivé seulement dans la mémoire.Maintenant, après un certain laps de temps, que ce soit dans les points de contrôle ou lorsqu'un nom de nœud est redémarré, editlogs sur le disque qui ont déjà les mises à jour que vous avez fait(dans votre cas, le mouvement de fichier) a fusionné avec l'ancien FsImage sur le disque et crée un nouveau FsImage.Maintenant, cette mise à jour FsImage sera chargé dans la mémoire et le même processus se répète.
OriginalL'auteur user2522713