HDFS-4473. Don't create domain socket unless we need it. Contributed by Colin Patrick McCabe.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-347@1443283 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
dcd27ff778
commit
3d46863e12
|
@ -39,3 +39,5 @@ HDFS-4433. Make TestPeerCache not flaky (Colin Patrick McCabe via todd)
|
||||||
HDFS-4438. TestDomainSocket fails when system umask is set to 0002. (Colin Patrick McCabe via atm)
|
HDFS-4438. TestDomainSocket fails when system umask is set to 0002. (Colin Patrick McCabe via atm)
|
||||||
|
|
||||||
HDFS-4440. Avoid annoying log message when dfs.domain.socket.path is not set. (Colin Patrick McCabe via atm)
|
HDFS-4440. Avoid annoying log message when dfs.domain.socket.path is not set. (Colin Patrick McCabe via atm)
|
||||||
|
|
||||||
|
HDFS-4473. Don't create domain socket unless we need it. (Colin Patrick McCabe via atm)
|
||||||
|
|
|
@ -559,13 +559,18 @@ public class DataNode extends Configured
|
||||||
new DataXceiverServer(tcpPeerServer, conf, this));
|
new DataXceiverServer(tcpPeerServer, conf, this));
|
||||||
this.threadGroup.setDaemon(true); // auto destroy when empty
|
this.threadGroup.setDaemon(true); // auto destroy when empty
|
||||||
|
|
||||||
DomainPeerServer domainPeerServer =
|
if (conf.getBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY,
|
||||||
getDomainPeerServer(conf, streamingAddr.getPort());
|
DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT) ||
|
||||||
if (domainPeerServer != null) {
|
conf.getBoolean(DFSConfigKeys.DFS_CLIENT_DOMAIN_SOCKET_DATA_TRAFFIC,
|
||||||
this.localDataXceiverServer = new Daemon(threadGroup,
|
DFSConfigKeys.DFS_CLIENT_DOMAIN_SOCKET_DATA_TRAFFIC_DEFAULT)) {
|
||||||
new DataXceiverServer(domainPeerServer, conf, this));
|
DomainPeerServer domainPeerServer =
|
||||||
LOG.info("Listening on UNIX domain socket: " +
|
getDomainPeerServer(conf, streamingAddr.getPort());
|
||||||
domainPeerServer.getBindPath());
|
if (domainPeerServer != null) {
|
||||||
|
this.localDataXceiverServer = new Daemon(threadGroup,
|
||||||
|
new DataXceiverServer(domainPeerServer, conf, this));
|
||||||
|
LOG.info("Listening on UNIX domain socket: " +
|
||||||
|
domainPeerServer.getBindPath());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,17 @@ import org.junit.BeforeClass;
|
||||||
public class TestParallelRead extends TestParallelReadUtil {
|
public class TestParallelRead extends TestParallelReadUtil {
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
static public void setupCluster() throws Exception {
|
static public void setupCluster() throws Exception {
|
||||||
setupCluster(DEFAULT_REPLICATION_FACTOR, new HdfsConfiguration());
|
// This is a test of the normal (TCP) read path. For this reason, we turn
|
||||||
|
// off both short-circuit local reads and UNIX domain socket data traffic.
|
||||||
|
HdfsConfiguration conf = new HdfsConfiguration();
|
||||||
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, false);
|
||||||
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_DOMAIN_SOCKET_DATA_TRAFFIC,
|
||||||
|
false);
|
||||||
|
// dfs.domain.socket.path should be ignored because the previous two keys
|
||||||
|
// were set to false. This is a regression test for HDFS-4473.
|
||||||
|
conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY, "/will/not/be/created");
|
||||||
|
|
||||||
|
setupCluster(DEFAULT_REPLICATION_FACTOR, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
|
|
|
@ -293,6 +293,9 @@ public class TestShortCircuitLocalRead {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
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, false);
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY, false);
|
||||||
|
conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
|
||||||
|
"/tmp/testSkipWithVerifyChecksum._PORT");
|
||||||
|
DomainSocket.disableBindPathValidation();
|
||||||
if (simulatedStorage) {
|
if (simulatedStorage) {
|
||||||
SimulatedFSDataset.setFactory(conf);
|
SimulatedFSDataset.setFactory(conf);
|
||||||
}
|
}
|
||||||
|
@ -337,6 +340,8 @@ public class TestShortCircuitLocalRead {
|
||||||
HdfsConfiguration conf = new HdfsConfiguration();
|
HdfsConfiguration conf = new HdfsConfiguration();
|
||||||
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, false);
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY, false);
|
||||||
|
conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
|
||||||
|
"/tmp/testHandleTruncatedBlockFile._PORT");
|
||||||
conf.set(DFSConfigKeys.DFS_CHECKSUM_TYPE_KEY, "CRC32C");
|
conf.set(DFSConfigKeys.DFS_CHECKSUM_TYPE_KEY, "CRC32C");
|
||||||
final Path TEST_PATH = new Path("/a");
|
final Path TEST_PATH = new Path("/a");
|
||||||
final Path TEST_PATH2 = new Path("/b");
|
final Path TEST_PATH2 = new Path("/b");
|
||||||
|
@ -432,6 +437,8 @@ public class TestShortCircuitLocalRead {
|
||||||
// Setup create a file
|
// Setup create a file
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, shortcircuit);
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, shortcircuit);
|
||||||
|
conf.set(DFSConfigKeys.DFS_DOMAIN_SOCKET_PATH_KEY,
|
||||||
|
"/tmp/TestShortCircuitLocalRead._PORT");
|
||||||
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY,
|
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY,
|
||||||
checksum);
|
checksum);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue