Anu Engineer created HDFS-8807: ---------------------------------- Summary: dfs.datanode.data.dir does not handle spaces between storageType and URI correctly Key: HDFS-8807 URL: https://issues.apache.org/jira/browse/HDFS-8807 Project: Hadoop HDFS Issue Type: Bug Components: HDFS Affects Versions: 2.8.0 Reporter: Anu Engineer Assignee: Anu Engineer Fix For: 2.8.0
if you add a space between the storage type and file URI then datanodes fail during startup. Here is an example of "mis-configration" that leads to datanode failure. {code} <property> <name>dfs.datanode.data.dir</name> <value> [DISK] file://tmp/hadoop-aengineer/disk1/dfs/data </value> </property> {code} Here is the "fixed" version. Please *note* the lack of space between \[DISK\] and file URI {code} <property> <name>dfs.datanode.data.dir</name> <value> [DISK]file://tmp/hadoop-aengineer/disk1/dfs/data </value> </property> {code} we fail with a parsing error, here is the info from the datanode logs. {code} 2015-07-22 13:34:36,812 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in scheme name at index 0: file://tmp/hadoop-aengineer/disk1/dfs/data at org.apache.hadoop.fs.Path.initialize(Path.java:204) at org.apache.hadoop.fs.Path.<init>(Path.java:170) at org.apache.hadoop.hdfs.server.datanode.StorageLocation.parse(StorageLocation.java:97) at org.apache.hadoop.hdfs.server.datanode.DataNode.getStorageLocations(DataNode.java:2314) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2298) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2349) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2529) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2553) Caused by: java.net.URISyntaxException: Illegal character in scheme name at index 0: file://tmp/hadoop-aengineer/disk1/dfs/data at java.net.URI$Parser.fail(URI.java:2829) at java.net.URI$Parser.checkChars(URI.java:3002) at java.net.URI$Parser.checkChar(URI.java:3012) at java.net.URI$Parser.parse(URI.java:3028) at java.net.URI.<init>(URI.java:753) at org.apache.hadoop.fs.Path.initialize(Path.java:201) ... 7 more {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)