diff --git a/hbase-common/src/main/resources/hbase-default.xml b/hbase-common/src/main/resources/hbase-default.xml
index a1827a27ce5..df94c5b9c1f 100644
--- a/hbase-common/src/main/resources/hbase-default.xml
+++ b/hbase-common/src/main/resources/hbase-default.xml
@@ -1442,7 +1442,7 @@ possible configurations would overwhelm and obscure the important.
dfs.client.read.shortcircuit
- false
+
If set to true, this configuration parameter enables short-circuit local
reads.
@@ -1450,7 +1450,7 @@ possible configurations would overwhelm and obscure the important.
dfs.domain.socket.path
- none
+
This is a path to a UNIX domain socket that will be used for
communication between the DataNode and local HDFS clients, if
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java
index 6a0b4283ed0..1144f1daf35 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java
@@ -115,6 +115,23 @@ public class TestHBaseConfiguration {
conf.set("hbase.security.authentication", "KERBeros");
Assert.assertTrue(User.isHBaseSecurityEnabled(conf));
}
+
+ @Test
+ public void testGetConfigOfShortcircuitRead() throws Exception {
+ Configuration conf = HBaseConfiguration.create();
+ Configuration.addDefaultResource("hdfs-default.xml");
+ assertEquals("hdfs-default.xml",
+ conf.getPropertySources("dfs.client.read.shortcircuit")[0]);
+ assertEquals("false", conf.get("dfs.client.read.shortcircuit"));
+ assertNull(conf.get("dfs.domain.socket.path"));
+ Configuration.addDefaultResource("hdfs-scr-enabled.xml");
+ assertEquals("hdfs-scr-enabled.xml",
+ conf.getPropertySources("dfs.client.read.shortcircuit")[0]);
+ assertEquals("hdfs-scr-enabled.xml",
+ conf.getPropertySources("dfs.domain.socket.path")[0]);
+ assertEquals("true", conf.get("dfs.client.read.shortcircuit"));
+ assertEquals("/var/lib/hadoop-hdfs/dn_socket", conf.get("dfs.domain.socket.path"));
+ }
private static class ReflectiveCredentialProviderClient {
public static final String HADOOP_CRED_PROVIDER_FACTORY_CLASS_NAME =
diff --git a/hbase-common/src/test/resources/hdfs-default.xml b/hbase-common/src/test/resources/hdfs-default.xml
new file mode 100644
index 00000000000..fdb3c36edc8
--- /dev/null
+++ b/hbase-common/src/test/resources/hdfs-default.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ dfs.client.read.shortcircuit
+ false
+
+ If set to true, this configuration parameter enables short-circuit local
+ reads.
+
+
+
+ dfs.domain.socket.path
+
+
+ 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.
+
+
+
diff --git a/hbase-common/src/test/resources/hdfs-scr-enabled.xml b/hbase-common/src/test/resources/hdfs-scr-enabled.xml
new file mode 100644
index 00000000000..8594494782c
--- /dev/null
+++ b/hbase-common/src/test/resources/hdfs-scr-enabled.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ dfs.client.read.shortcircuit
+ true
+
+ If set to true, this configuration parameter enables short-circuit local
+ reads.
+
+
+
+ dfs.domain.socket.path
+ /var/lib/hadoop-hdfs/dn_socket
+
+ 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.
+
+
+