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)