HDFS-4416. Rename dfs.datanode.domain.socket.path to dfs.domain.socket.path. Contributed by Colin Patrick McCabe.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-347@1436568 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Todd Lipcon 2013-01-21 19:29:06 +00:00
parent 52c5b8ea9f
commit 89bd14913a
13 changed files with 48 additions and 16 deletions

View File

@ -743,6 +743,21 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
return value.trim(); return value.trim();
} }
} }
/**
* Get the value of the <code>name</code> property as a trimmed <code>String</code>,
* <code>defaultVal</code> if no such property exists.
* See @{Configuration#getTrimmed} for more details.
*
* @param name the property name.
* @param defaultVal the property default value.
* @return the value of the <code>name</code> or defaultVal
* if it is not set.
*/
public String getTrimmed(String name, String defaultValue) {
String ret = getTrimmed(name);
return ret == null ? defaultValue : ret;
}
/** /**
* Get the value of the <code>name</code> property, without doing * Get the value of the <code>name</code> property, without doing
@ -877,7 +892,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
} }
return result; return result;
} }
/** /**
* Get the value of the <code>name</code> property as an <code>int</code>. * Get the value of the <code>name</code> property as an <code>int</code>.
* *

View File

@ -119,7 +119,7 @@ public class DomainSocket implements Closeable {
/** /**
* Given a path and a port, compute the effective path by replacing * Given a path and a port, compute the effective path by replacing
* occurrences of __PORT__ with the port. This is mainly to make it * occurrences of _PORT with the port. This is mainly to make it
* possible to run multiple DataNodes locally for testing purposes. * possible to run multiple DataNodes locally for testing purposes.
* *
* @param path The source path * @param path The source path
@ -128,7 +128,7 @@ public class DomainSocket implements Closeable {
* @return The effective path * @return The effective path
*/ */
public static String getEffectivePath(String path, int port) { public static String getEffectivePath(String path, int port) {
return path.replace("__PORT__", String.valueOf(port)); return path.replace("_PORT", String.valueOf(port));
} }
/** /**

View File

@ -91,7 +91,7 @@ public class TestDomainSocket {
@Test(timeout=180000) @Test(timeout=180000)
public void testSocketPathSetGet() throws IOException { public void testSocketPathSetGet() throws IOException {
Assert.assertEquals("/var/run/hdfs/sock.100", Assert.assertEquals("/var/run/hdfs/sock.100",
DomainSocket.getEffectivePath("/var/run/hdfs/sock.__PORT__", 100)); DomainSocket.getEffectivePath("/var/run/hdfs/sock._PORT", 100));
} }
/** /**

View File

@ -27,3 +27,6 @@ HDFS-4402. Some small DomainSocket fixes: avoid findbugs warning, change log lev
(Colin Patrick McCabe via todd) (Colin Patrick McCabe via todd)
HDFS-4418. increase default FileInputStreamCache size (todd) HDFS-4418. increase default FileInputStreamCache size (todd)
HDFS-4416. Rename dfs.datanode.domain.socket.path to dfs.domain.socket.path
(Colin Patrick McCabe via todd)

View File

@ -291,7 +291,8 @@ public class DFSClient implements java.io.Closeable {
getFileBlockStorageLocationsTimeout = conf.getInt( getFileBlockStorageLocationsTimeout = conf.getInt(
DFSConfigKeys.DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT, DFSConfigKeys.DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT,
DFSConfigKeys.DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT_DEFAULT); DFSConfigKeys.DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT_DEFAULT);
domainSocketPath = conf.get(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY); domainSocketPath = conf.getTrimmed(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_DEFAULT);
skipShortCircuitChecksums = conf.getBoolean( skipShortCircuitChecksums = conf.getBoolean(
DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY, DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY,
DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_DEFAULT); DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_DEFAULT);

View File

@ -399,7 +399,8 @@ public class DFSConfigKeys extends CommonConfigurationKeys {
public static final String DFS_WEB_AUTHENTICATION_KERBEROS_KEYTAB_KEY = "dfs.web.authentication.kerberos.keytab"; public static final String DFS_WEB_AUTHENTICATION_KERBEROS_KEYTAB_KEY = "dfs.web.authentication.kerberos.keytab";
public static final String DFS_BLOCK_LOCAL_PATH_ACCESS_USER_KEY = "dfs.block.local-path-access.user"; public static final String DFS_BLOCK_LOCAL_PATH_ACCESS_USER_KEY = "dfs.block.local-path-access.user";
public static final String DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY = "dfs.datanode.domain.socket.path"; public static final String DFS_DOMAIN_SOCKET_PATH_KEY = "dfs.domain.socket.path";
public static final String DFS_DOMAIN_SOCKET_PATH_DEFAULT = "";
// HA related configuration // HA related configuration
public static final String DFS_HA_NAMENODES_KEY_PREFIX = "dfs.ha.namenodes"; public static final String DFS_HA_NAMENODES_KEY_PREFIX = "dfs.ha.namenodes";

View File

@ -58,9 +58,9 @@ class DomainSocketFactory {
feature = "UNIX domain socket data traffic"; feature = "UNIX domain socket data traffic";
} }
if (feature != null) { if (feature != null) {
if (conf.domainSocketPath == null) { if (conf.domainSocketPath.isEmpty()) {
LOG.warn(feature + " is disabled because you have not set " + LOG.warn(feature + " is disabled because you have not set " +
DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY); DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY);
} else if (DomainSocket.getLoadingFailureReason() != null) { } else if (DomainSocket.getLoadingFailureReason() != null) {
LOG.warn(feature + " is disabled because " + LOG.warn(feature + " is disabled because " +
DomainSocket.getLoadingFailureReason()); DomainSocket.getLoadingFailureReason());

View File

@ -572,13 +572,14 @@ public class DataNode extends Configured
static DomainPeerServer getDomainPeerServer(Configuration conf, static DomainPeerServer getDomainPeerServer(Configuration conf,
int port) throws IOException { int port) throws IOException {
String domainSocketPath = String domainSocketPath =
conf.get(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY); conf.getTrimmed(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
if (domainSocketPath == null) { DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_DEFAULT);
if (domainSocketPath.isEmpty()) {
if (conf.getBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, if (conf.getBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY,
DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT)) { DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT)) {
LOG.warn("Although short-circuit local reads are configured, " + LOG.warn("Although short-circuit local reads are configured, " +
"they are disabled because you didn't configure " + "they are disabled because you didn't configure " +
DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY); DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY);
} }
return null; return null;
} }

View File

@ -1197,4 +1197,15 @@
</description> </description>
</property> </property>
<property>
<name>dfs.domain.socket.path</name>
<value></value>
<description>
Optional. This is a path to a UNIX domain socket that will be used for
communication between the DataNode and local HDFS clients.
If the string "_PORT" is present in this path, it will be replaced by the
TCP port of the DataNode.
</description>
</property>
</configuration> </configuration>

View File

@ -35,7 +35,7 @@ public class TestParallelShortCircuitRead extends TestParallelReadUtil {
if (DomainSocket.getLoadingFailureReason() != null) return; if (DomainSocket.getLoadingFailureReason() != null) return;
sockDir = new TemporarySocketDirectory(); sockDir = new TemporarySocketDirectory();
HdfsConfiguration conf = new HdfsConfiguration(); HdfsConfiguration conf = new HdfsConfiguration();
conf.set(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY, conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath()); new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath());
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true); conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true);
conf.setBoolean(DFSConfigKeys. conf.setBoolean(DFSConfigKeys.

View File

@ -35,7 +35,7 @@ public class TestParallelShortCircuitReadNoChecksum extends TestParallelReadUtil
if (DomainSocket.getLoadingFailureReason() != null) return; if (DomainSocket.getLoadingFailureReason() != null) return;
sockDir = new TemporarySocketDirectory(); sockDir = new TemporarySocketDirectory();
HdfsConfiguration conf = new HdfsConfiguration(); HdfsConfiguration conf = new HdfsConfiguration();
conf.set(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY, conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath()); new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath());
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true); conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true);
conf.setBoolean(DFSConfigKeys. conf.setBoolean(DFSConfigKeys.

View File

@ -35,7 +35,7 @@ public class TestParallelUnixDomainRead extends TestParallelReadUtil {
if (DomainSocket.getLoadingFailureReason() != null) return; if (DomainSocket.getLoadingFailureReason() != null) return;
sockDir = new TemporarySocketDirectory(); sockDir = new TemporarySocketDirectory();
HdfsConfiguration conf = new HdfsConfiguration(); HdfsConfiguration conf = new HdfsConfiguration();
conf.set(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY, conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath()); new File(sockDir.getDir(), "TestParallelLocalRead.%d.sock").getAbsolutePath());
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, false); conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, false);
DomainSocket.disableBindPathValidation(); DomainSocket.disableBindPathValidation();

View File

@ -193,9 +193,9 @@ public class TestShortCircuitLocalRead {
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true); conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, true);
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY, conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY,
ignoreChecksum); ignoreChecksum);
conf.set(DFSConfigKeys.DFS_DATANODE_DOMAIN_SOCKET_PATH_KEY, conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
new File(sockDir.getDir(), new File(sockDir.getDir(),
"TestShortCircuitLocalRead.__PORT__.sock").getAbsolutePath()); "TestShortCircuitLocalRead._PORT.sock").getAbsolutePath());
if (simulatedStorage) { if (simulatedStorage) {
SimulatedFSDataset.setFactory(conf); SimulatedFSDataset.setFactory(conf);
} }