Currently, in our production cluster, Namenode and Secondary Namenode are on the same host (master node). I believe it is advisable to have SNN on a different node.
What steps can I follow to safely move SNN from one host to another? There is documentation online to move Namenode but I could not find one that explains a way to reliably move SNN to a new node.
Let's first dive into the core explanation of NameNode(NN) and Secondary NameNode (SNN) by explaining the roles of NN and SNN.
It contains metadata of datanodes, directory tree structure, fsimage and edit logs related to your entire cluster SecondaryNameNode:
It periodically collect fsimage and edit logs from NN and then merge those into new fsimage file, again it will push back into NN to decrease the size of NN metadata.
So if NN fails
Having said that a PRODUCTION cluster should run in a NameNode HA. Where the Active and Standby NameNodes are running on different hosts, racks and also with Network redundancy this ensures
HDP pro-actively detects NameNode host and process failures and will automatically switch to the standby NameNode to maintain availability for the HDFS service.
Both Active and Standby NameNodes have up to date HDFS metadata, ensuring seamless failover even for large clusters – which means no downtime for your HDP cluster!
Full Stack Resiliency:
The entire HDP stack to handle a NameNode failure scenario without losing data or the job progress. This is vital to ensure long running jobs that are critical to complete on schedule will not be adversely affected during a NameNode failure scenario.
Here is aHortonworks documentation
Please let me know if that helped
That's right . Makes sense to do that but your answer does not address the issue I have. I would like to move SNN to a different mode.
I don't understand why NN and SNN is advisable on different nodes. Because SNN read log from NN and process them into fsimage and so on. If SNN is in different node, that will cost network transferring. Not make sense.