Hi,all I'm testing hadoop with two secondary namenode ( I'm using hadoop-0.20.2) , and get some errors. So I did a few search. But first I got confused about SNN:
From http://hadoop.apache.org/hdfs/docs/current/hdfs_user_guide.html#Secondary+NameNode says: 'The secondary NameNode merges the fsimage and the edits log files periodically and keeps edits log size within a limit.' But from http://wiki.apache.org/hadoop/FAQ#What_is_the_purpose_of_the_secondary_name-node.3F says: 'The only purpose of the secondary name-node is to perform periodic checkpoints. The secondary name-node periodically downloads current name-node image and edits log files, joins them into new image and uploads the new image back to the (primary and the only) name-node' So whether or not will SNN upload the image back to NameNode? If so, what's the difference between SNN and checkpoint node? Back to the two secondary namenode question I had namenode and two SNN on three separate machines. Each one SNN with NN work fine. But if I start two SNN with NN, it failed: The NN says: WARN org.mortbay.log: /getimage: java.io.IOException: GetImage failed. java.io.IOException: Namenode is not expecting an new image UPLOAD_START .... WARN org.mortbay.log: /getimage: java.io.IOException: GetImage failed. java.io.IOException: Namenode is not expecting an new image START The SNN says: ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint: ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: java.io.FileNotFoundException: http://192.168.1.22:50070/getimage?putimage=1&port=50090&machine=192.168.1.23&token=-18:785478552:0:1306378278000:1306378218810 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at org.apache.hadoop.hdfs.server.namenode.TransferFsImage.getFileClient(TransferFsImage.java:151) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.putFSImage(SecondaryNameNode.java:280) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:320) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:225) at java.lang.Thread.run(Unknown Source) What's wrong? Multiple SNN not supported in hadoop-0.20.2? Thanks.