[
https://issues.apache.org/jira/browse/HDFS-14423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16904912#comment-16904912
]
Masatake Iwasaki commented on HDFS-14423:
-----------------------------------------
For path containing "%" like "webhdfs://localhost/%", the percent converted
into "%25" by URLEncoder#encode then into "%2525" by constructor of URI.
{noformat}
2019-08-12 15:36:53,962 TRACE web.WebHdfsFileSystem:
url=http://localhost:9870/webhdfs/v1/%2525?op=GETFILESTATUS&user.name=iwasakims
{noformat}
This is incompatible with 2.9 in which "%" is encoded once by constructor of
URI.
{noformat}
$ bin/hdfs dfs -touchz 'webhdfs://localhost/%'
19/08/12 16:07:32 DEBUG web.WebHdfsFileSystem: Not enabling OAuth2 in WebHDFS
19/08/12 16:07:32 TRACE web.WebHdfsFileSystem:
url=http://localhost:50070/webhdfs/v1/%25?op=GETFILESTATUS&user.name=iwasakims
{noformat}
> Percent (%) and plus (+) characters no longer work in WebHDFS
> -------------------------------------------------------------
>
> Key: HDFS-14423
> URL: https://issues.apache.org/jira/browse/HDFS-14423
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: webhdfs
> Affects Versions: 3.2.0, 3.1.2
> Environment: Ubuntu 16.04, but I believe this is irrelevant.
> Reporter: Jing Wang
> Assignee: Wei-Chiu Chuang
> Priority: Major
> Attachments: HDFS-14423.001.patch
>
>
> The following commands with percent (%) no longer work starting with version
> 3.1:
> {code:java}
> $ hadoop/bin/hdfs dfs -touchz webhdfs://localhost/%
> $ hadoop/bin/hdfs dfs -cat webhdfs://localhost/%
> cat: URLDecoder: Incomplete trailing escape (%) pattern
> {code}
> Also, plus (+ ) characters get turned into spaces when doing DN operations:
> {code:java}
> $ hadoop/bin/hdfs dfs -touchz webhdfs://localhost/a+b
> $ hadoop/bin/hdfs dfs -mkdir webhdfs://localhost/c+d
> $ hadoop/bin/hdfs dfs -ls /
> Found 4 items
> -rw-r--r-- 1 jing supergroup 0 2019-04-12 11:20 /a b
> drwxr-xr-x - jing supergroup 0 2019-04-12 11:21 /c+d
> {code}
> I can confirm that these commands work correctly on 2.9 and 3.0. Also, the
> usual hdfs:// client works as expected.
> I suspect a relation with HDFS-13176 or HDFS-13582, but I'm not sure what the
> right fix is. Note that Hive uses % to escape special characters in partition
> values, so banning % might not be a good option. For example, Hive will
> create a paths like {{table_name/partition_key=%2F}} when
> {{partition_key='/'}}.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]