Why it matters
Backup is a compliance requirement for most enterprise HBase deployments. Snapshots make backups fast (instant capture) and cheap (no data copy). This makes daily or hourly snapshots practical, whereas the naive approach of scanning and exporting a table can take hours per backup.
Snapshots also enable safe experimentation. Clone a snapshot into a new table, run risky operations against the clone, and delete it when done. The original is untouched.
The architecture
A snapshot is a metadata operation. When you snapshot a table, HBase captures the current set of HFiles for each region, plus the current memstore contents (flushed to a temporary HFile). The snapshot is stored as a directory of manifest files pointing to the existing HFiles.
Because HFiles are never modified, the snapshot remains valid indefinitely. However, if the table would normally delete an HFile (during compaction cleanup), and the snapshot still references it, the HFile is kept until the snapshot is deleted. This means snapshots consume storage proportional to how much data has been rewritten by compactions since the snapshot was taken.
How it works end to end
Snapshot creation flow: the HMaster coordinates all RegionServers hosting regions of the target table. Each RegionServer flushes its memstore (making all in-memory writes durable), then records the set of HFiles that make up its regions. The manifest is written to HDFS. Total time is dominated by the flush, typically seconds.
Restore replaces the current table with the snapshot version. All post-snapshot changes are discarded. Restore is destructive — practice it in staging first.
Clone creates a new table from the snapshot without touching the original. The clone shares HFiles with the original via HDFS hardlinks (or references), so no data is copied. Compactions on the clone eventually rewrite the HFiles, at which point the clone starts using independent storage.
Export ships a snapshot to another HDFS cluster, copying HFile data over the network. This is how you transfer backups off-cluster or seed replication targets.