hadoop dfs -ls, -get, -mv command's source/destination URI are inconsistent
---------------------------------------------------------------------------

                 Key: HADOOP-1967
                 URL: https://issues.apache.org/jira/browse/HADOOP-1967
             Project: Hadoop
          Issue Type: Bug
          Components: dfs
    Affects Versions: 0.14.1
            Reporter: lohit vijayarenu


While specifying source/destination path for hadoop dfs -ls, -get, -mv, -cp 
commands, we have some inconsistency related to 'hdfs://' scheme.

Particularly, few of the commands accept both formats
[1] hdfs:///user/lohit/testfile
[2] hdfs://myhost:8020/user/lohit/testfile

and few commands accept only paths, which have authority (host:port)
[2] hdfs://myhost:8020/user/lohit/testfile

below are examples
hadoop dfs -ls  (works for both formats)
{quote}
[EMAIL PROTECTED] ~]$ hadoop dfs -ls hdfs://kry-nn1:8020/user/lohit/ranges
Found 1 items
/user/lohit/ranges      <r 3>   24      1970-01-01 00:00
[EMAIL PROTECTED] ~]$ hadoop dfs -ls hdfs:///user/lohit/ranges
Found 1 items
{quote}


hadoop dfs -get (works for only format [2])
{quote}
[EMAIL PROTECTED] ~]$ hadoop dfs -get hdfs:///user/lohit/ranges .
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS:
hdfs:/user/lohit/ranges, expected: hdfs://kry-nn1:8020
        at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:204)
        at
org.apache.hadoop.dfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:108)
        at
org.apache.hadoop.dfs.DistributedFileSystem.getPath(DistributedFileSystem.java:104)
        at
org.apache.hadoop.dfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:319)
        at org.apache.hadoop.fs.FileSystem.isDirectory(FileSystem.java:423)
        at org.apache.hadoop.fs.FsShell.copyToLocal(FsShell.java:177)
        at org.apache.hadoop.fs.FsShell.copyToLocal(FsShell.java:155)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:1233)
        at org.apache.hadoop.util.ToolBase.doMain(ToolBase.java:187)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:1342)
[EMAIL PROTECTED] ~]$ hadoop dfs -get hdfs://kry-nn1:8020/user/lohit/ranges .
[EMAIL PROTECTED] ~]$ ls ./ranges
./ranges
[EMAIL PROTECTED] ~]$
{quote}

hadoop dfs -mv / -cp command. source path accepts both format [1] and [2], 
while destination accepts only [2].
{quote}
[EMAIL PROTECTED] ~]$ hadoop dfs -cp hdfs://kry-nn1:8020/user/lohit/ranges.test2
hdfs:///user/lohit/ranges.test
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS:
hdfs:/user/lohit/ranges.test, expected: hdfs://kry-nn1:8020
        at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:204)
        at
org.apache.hadoop.dfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:108)
        at
org.apache.hadoop.dfs.DistributedFileSystem.getPath(DistributedFileSystem.java:104)
        at
org.apache.hadoop.dfs.DistributedFileSystem.exists(DistributedFileSystem.java:162)
        at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:269)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:117)
        at org.apache.hadoop.fs.FsShell.copy(FsShell.java:691)
        at org.apache.hadoop.fs.FsShell.copy(FsShell.java:727)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:1260)
        at org.apache.hadoop.util.ToolBase.doMain(ToolBase.java:187)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:1342)
[EMAIL PROTECTED] ~]$ hadoop dfs -cp hdfs:///user/lohit/ranges.test2
hdfs://kry-nn1:8020/user/lohit/ranges.test
[EMAIL PROTECTED] ~]$ 
{quote}

We should have a consistent URI naming convention across all commands. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to