You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by jg...@apache.org on 2010/06/10 03:39:59 UTC
svn commit: r953195 - in /hadoop/hdfs/trunk: CHANGES.txt
src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java
src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
Author: jghoman
Date: Thu Jun 10 01:39:57 2010
New Revision: 953195
URL: http://svn.apache.org/viewvc?rev=953195&view=rev
Log:
HDFS-1080. SecondaryNameNode image transfer should use the defined http address rather than local ip address. (jghoman)
Modified:
hadoop/hdfs/trunk/CHANGES.txt
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
Modified: hadoop/hdfs/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=953195&r1=953194&r2=953195&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Thu Jun 10 01:39:57 2010
@@ -70,6 +70,9 @@ Trunk (unreleased changes)
HDFS-1027. Update copyright year to 2010. (Ravi Phulari via jghoman)
+ HDFS-1080. SecondaryNameNode image transfer should use the defined http
+ address rather than local ip address. (jghoman)
+
Release 0.21.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java?rev=953195&r1=953194&r2=953195&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/Checkpointer.java Thu Jun 10 01:39:57 2010
@@ -39,6 +39,8 @@ import org.apache.hadoop.hdfs.DFSConfigK
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.http.HttpServer;
import org.apache.hadoop.util.Daemon;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_BACKUP_HTTP_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_BACKUP_HTTP_ADDRESS_DEFAULT;
/**
* The Checkpointer is responsible for supporting periodic checkpoints
@@ -60,6 +62,8 @@ class Checkpointer extends Daemon {
private long checkpointPeriod; // in seconds
private long checkpointSize; // size (in MB) of current Edit Log
+ private String infoBindAddress;
+
private BackupStorage getFSImage() {
return (BackupStorage)backupNode.getFSImage();
}
@@ -94,6 +98,11 @@ class Checkpointer extends Daemon {
checkpointSize = conf.getLong(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_SIZE_KEY,
DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_SIZE_DEFAULT);
+ // Pull out exact http address for posting url to avoid ip aliasing issues
+ String fullInfoAddr = conf.get(DFS_NAMENODE_BACKUP_HTTP_ADDRESS_KEY,
+ DFS_NAMENODE_BACKUP_HTTP_ADDRESS_DEFAULT);
+ infoBindAddress = fullInfoAddr.substring(0, fullInfoAddr.indexOf(":"));
+
HttpServer httpServer = backupNode.httpServer;
httpServer.setAttribute("name.system.image", getFSImage());
httpServer.setAttribute("name.conf", conf);
@@ -197,11 +206,11 @@ class Checkpointer extends Daemon {
* Copy the new image into remote name-node.
*/
private void uploadCheckpoint(CheckpointSignature sig) throws IOException {
+ // Use the exact http addr as specified in config to deal with ip aliasing
InetSocketAddress httpSocAddr = backupNode.getHttpAddress();
int httpPort = httpSocAddr.getPort();
String fileid = "putimage=1&port=" + httpPort +
- "&machine=" +
- InetAddress.getLocalHost().getHostAddress() +
+ "&machine=" + infoBindAddress +
"&token=" + sig.toString();
LOG.info("Posted URL " + backupNode.nnHttpAddress + fileid);
TransferFsImage.getFileClient(backupNode.nnHttpAddress, fileid, (File[])null);
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java?rev=953195&r1=953194&r2=953195&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java Thu Jun 10 01:39:57 2010
@@ -19,7 +19,6 @@ package org.apache.hadoop.hdfs.server.na
import java.io.File;
import java.io.IOException;
-import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.ArrayList;
@@ -277,8 +276,7 @@ public class SecondaryNameNode implement
*/
private void putFSImage(CheckpointSignature sig) throws IOException {
String fileid = "putimage=1&port=" + infoPort +
- "&machine=" +
- InetAddress.getLocalHost().getHostAddress() +
+ "&machine=" + infoBindAddress +
"&token=" + sig.toString();
LOG.info("Posted URL " + fsName + fileid);
TransferFsImage.getFileClient(fsName, fileid, (File[])null);