2013-07-08 45 views
0

我運行在Amazon EC2上複製文件,DistCp使用失敗

說一個HDFS,我有一臺FTP服務器,其中存儲一些數據。

我只是想以並行的方式將這些數據直接複製到hdfs(這可能更有效)。

我認爲hadoop distcp是我所需要的。

$ bin/hadoop distcp ftp://username:[email protected]/some/path/ hdfs://namenode/some/path 

不起作用。

13/07/05 16:13:46 INFO tools.DistCp: srcPaths=[ftp://username:[email protected]/some/path/] 
13/07/05 16:13:46 INFO tools.DistCp: destPath=hdfs://namenode/some/path 
Copy failed: org.apache.hadoop.mapred.InvalidInputException: Input source ftp://username:[email protected]/some/path/ does not exist. 
at org.apache.hadoop.tools.DistCp.checkSrcPath(DistCp.java:641) 
at org.apache.hadoop.tools.DistCp.copy(DistCp.java:656) 
at org.apache.hadoop.tools.DistCp.run(DistCp.java:881) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) 
at org.apache.hadoop.tools.DistCp.main(DistCp.java:908) 

我在Chrome中複製的FTP路徑檢查路徑和文件確實存在,我甚至可以下載它。

然後,我試圖通過列出的路徑下的文件:

ls: Cannot access ftp://username:[email protected]/some/path/: No such file or directory. 

這似乎是相同的PB:

$ bin/hadoop dfs -ls ftp://username:[email protected]/some/path/ 

它與結束。

任何解決方法在這裏?

預先感謝您。

郝。

回答

0

ftp和hdfs是不同的協議,distcp只能在兩個不同的hdfs集羣之間複製文件,所以可能有兩種解決方案:1)把你的ftp文件放到本地hdfs集羣和distcp到EC2集羣。 2)或將您的文件送到EC2服務器並將該文件放入EC2羣集。希望能幫助到你!