distcp defeciencies and bugs
----------------------------

                 Key: HADOOP-495
                 URL: http://issues.apache.org/jira/browse/HADOOP-495
             Project: Hadoop
          Issue Type: Bug
          Components: dfs
    Affects Versions: 0.5.0
            Reporter: Sameer Paranjpye
         Assigned To: Arun C Murthy
             Fix For: 0.6.0


distcp as currently implemented has several defeciencies and bugs which I 
encountered when trying to use it to import logs from HTTP servers into my 
local DFS cluster. In general, it is user unfriendly and does not do 
comprehensible error reporting. 
Here's a list of things that can be improved:

1) There isn't a man page that explains the various command line options. We 
should have one.
2) Malformed URLs cause a NullPointerException to be thrown with no error 
message stating what went wrong
3) Relative paths for the local filesystem are not handled at all
4) The schema used for HDFS URLs is dfs:// it ought to be hdfs://, 'dfs' is far 
to general an acronym to use in URLs
5) If a copy to the local filesystem is specified with a relative path, for 
instance
    ./bin/hadoop distcp dfs://localhost:8020/foo.txt foo.txt
then the job runs successfully but the file is nowhere to be seen. It looks 
like this gets copied to the map/reduce jobs
current working directory
6) If a copy to a dfs is specified and the namenode cannot be resolved, the job 
fails with an IOException, no comprehensible error message is printed
7) If an HTTP URI has a query component, it is disregarded when constructing 
the destination file name, for instance, if one specifies the following two 
URLs to be copied in a file list
  http://myhost.mydomain.com/files.cgi?n=/logs/foo.txt
  http://myhost.myfomain.com/files.cgi?n=/logs/bar.txt

a single file called 'files.cgi' is created and is overwritten by one or both 
source files, it's not clear which. The destination
path name should be constructed in the way that 'wget' does it, using the 
filename+query part of the URL, escaping characters as necessary.

8) It looks like if a list of URLs is specified in a file distcp runs a 
separate map reduce job for each entry in the file, why?
Seems like one could do a straight copy for local files since the task needs to 
run locally, followed by a single MR job that
copies HDFS and http URLs



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to