Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-4329

DFSShell issues with directories with spaces in name


    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0, 0.23.10, 2.1.1-beta
    • Fix Version/s: 0.23.10, 2.3.0
    • Component/s: hdfs-client
    • Labels:


      This bug was discovered by Casey Ching.

      The command dfs -put /foo/hello.txt dir is supposed to create dir/hello.txt on HDFS. It doesn't work right if "dir" has a space in it:

      [adi@haus01 ~]$ hdfs dfs -mkdir 'space cat'
      [adi@haus01 ~]$ hdfs dfs -put /etc/motd 'space cat'
      [adi@haus01 ~]$ hdfs dfs -cat 'space cat/motd'
      cat: `space cat/motd': No such file or directory
      [adi@haus01 ~]$ hdfs dfs -ls space\*
      Found 1 items
      -rw-r--r--   2 adi supergroup        251 2012-12-20 11:16 space%2520cat/motd
      [adi@haus01 ~]$ hdfs dfs -cat 'space%20cat/motd'
      Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-30-generic x86_64)

      Note that the dfs -ls output wrongly encodes the wrongly encoded directory name, turning %20 into %2520. It does the same thing with space:

      [adi@haus01 ~]$ hdfs dfs -touchz 'space cat/foo'
      [adi@haus01 ~]$ hdfs dfs -ls 'space cat'
      Found 1 items
      -rw-r--r--   2 adi supergroup          0 2012-12-20 11:36 space%20cat/foo
      1. 4329.branch-0.23.patch
        10 kB
        Cristina L. Abad
      2. 4329.branch-0.23.v3.patch
        16 kB
        Cristina L. Abad
      3. 4329.branch-2.patch
        9 kB
        Cristina L. Abad
      4. 4329.trunk.patch
        10 kB
        Cristina L. Abad
      5. 4329.trunk.v2.patch
        9 kB
        Cristina L. Abad
      6. 4329.trunk.v3.patch
        17 kB
        Cristina L. Abad

        Issue Links


          No work has yet been logged on this issue.


            • Assignee:
              Cristina L. Abad
              Andy Isaacson
            • Votes:
              0 Vote for this issue
              8 Start watching this issue


              • Created: