The Secondary namenode is mainly used as a backup of namenode. The Secondary namenode collects checkpoints of metadata in namenode and then use it in case of namenode failure.
We need not use Secondary namenode because standby namenode keep its state synchronized with the Active namenode.
When you use the ./start-all.sh command, it starts the Secondary namenode but you can choose not to start it by starting other daemons individually.