[ https://issues.apache.org/jira/browse/HDFS-4943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13696142#comment-13696142 ]
Tsz Wo (Nicholas), SZE commented on HDFS-4943: ---------------------------------------------- Thanks a lot! Patch looks good. Could you also add a new test to show that the patch fixes the problem? You may put the new test cases in TestWebHdfsUrl. > WebHdfsFileSystem does not work when original file path has encoded chars > -------------------------------------------------------------------------- > > Key: HDFS-4943 > URL: https://issues.apache.org/jira/browse/HDFS-4943 > Project: Hadoop HDFS > Issue Type: Bug > Components: webhdfs > Affects Versions: 1.2.0, 1.1.2, 2.0.4-alpha > Reporter: Jerry He > Priority: Minor > Fix For: 2.1.0-beta > > Attachments: HDFS-4943-trunk.patch > > > In HBase, the WAL (hlog) file name on hdfs is URL encoded. For example, > hdtest010%2C60020%2C1371000602151.1371058984668 > When we use webhdfs client to access the hlog file via httpfs, it does not > work in this case. > $ hadoop fs -ls hdfs:///user/biadmin/hbase_hlogs > > Found 1 items > -rw-r--r-- 3 biadmin supergroup 15049470 2013-06-12 10:45 > /user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668 > $ hadoop fs -ls > hdfs:///user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668 > Found 1 items > -rw-r--r-- 3 biadmin supergroup 15049470 2013-06-12 10:45 > /user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668 > $ hadoop fs -ls webhdfs://hdtest010:14000/user/biadmin/hbase_hlogs > Found 1 items > -rw-r--r-- 3 biadmin supergroup 15049470 2013-06-12 10:45 > /user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668 > $ > $ hadoop fs -ls > webhdfs://hdtest010:14000/user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668 > 13/06/27 18:36:08 DEBUG web.WebHdfsFileSystem: Original exception is > org.apache.hadoop.ipc.RemoteException:java.io.FileNotFoundException:File does > not exist: > /user/biadmin/hbase_hlogs/hdtest010,60020,1371000602151.1371058984668 > at > org.apache.hadoop.hdfs.web.JsonUtil.toRemoteException(JsonUtil.java:114) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.validateResponse(WebHdfsFileSystem.java:299) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.access$500(WebHdfsFileSystem.java:104) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem$Runner.getResponse(WebHdfsFileSystem.java:641) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem$Runner.run(WebHdfsFileSystem.java:538) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.run(WebHdfsFileSystem.java:468) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getHdfsFileStatus(WebHdfsFileSystem.java:662) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getFileStatus(WebHdfsFileSystem.java:673) > at org.apache.hadoop.fs.FileSystem.getFileStatus(FileSystem.java:1365) > at > org.apache.hadoop.fs.FileSystem.globStatusInternal(FileSystem.java:1048) > at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:987) > at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:965) > at org.apache.hadoop.fs.FsShell.ls(FsShell.java:573) > at org.apache.hadoop.fs.FsShell.doall(FsShell.java:1571) > at org.apache.hadoop.fs.FsShell.run(FsShell.java:1789) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) > at org.apache.hadoop.fs.FsShell.main(FsShell.java:1895) > ls: Cannot access > webhdfs://hdtest010:14000/user/biadmin/hbase_hlogs/hdtest010%2C60020%2C1371000602151.1371058984668: > No such file or directory. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira