Main functions of Secondary NameNode are as follows:
1. FsImage: It stores a copy of FsImage file and EditLog.
2. NameNode crash: In case NameNode crashes, we can use Secondary NameNode's FsImage to recreate the NameNode.
3. Checkpoint: Secondary NameNode runs Checkpoint to confirm that data is not corrupt in HDFS.
4. Update: It periodically applies the updates from EditLog to FsImage file. In this way FsImage file on Secondary NameNode is kept up to date. This helps in saving time during NameNode restart.