HDFS имеет архитектуру ведущий / ведомый. Кластер HDFS состоит из одного NameNode, главного сервера, который управляет пространством имен файловой системы и регулирует доступ клиентов к файлам. Любые изменения в пространстве имен файловой системы или его свойствах регистрируются узлом NameNode. NameNode использует журнал транзакций, называемый EditLog, для постоянной записи каждого изменения, которое происходит с метаданными файловой системы. Например, создание нового файла в HDFS, изменение коэффициента репликации и т. Д. Заставляет NameNode вставить запись в EditLog, указывающую на это. NameNode использует файл в своей файловой системе локальной операционной системы для хранения EditLog.
FsImage и EditLog идут рука об руку, поэтому это объяснение. Теперь:
Все пространство имен файловой системы, включая отображение блоков в файлы и свойства файловой системы, хранится в файле с именем FsImage. FsImage хранится в виде файла в локальной файловой системе NameNode.
Снимки поддерживают сохранение копии данных в определенный момент времени. Снимок можно сделать и для всей файловой системы. Это не включает в себя копирование данных, но запись размера файла, информации о блоке и т. Д. В каталог моментальных снимков.
В очень нормальных условиях FsImage хранит информацию о том, где хранятся данные, сколько блоков и связанной информации, в то время как Snapshotхранит образ данных / файловой системы, доступный только для чтения.
Надеюсь, это объясняет разницу.