0

Amazon EC2 で hdfs を実行しています

たとえば、データを保存する ftp サーバーがあるとします。

これらのデータを並行して hdfs に直接コピーしたいだけです (おそらくより効率的です)。

Hadoop distcp が必要だと思います。

しかし

$ bin/hadoop distcp ftp://username:passwd@hostname/some/path/ hdfs://namenode/some/path

動作しません。

13/07/05 16:13:46 INFO tools.DistCp: srcPaths=[ftp://username:passwd@hostname/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:passwd@hostname/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 パスをコピーしてパスを確認しましたが、ファイルは実際に存在し、ダウンロードすることもできます。

そして、パスの下にあるファイルを次のようにリストしようとしました。

$ bin/hadoop dfs -ls ftp://username:passwd@hostname/some/path/

次で終了します。

ls: Cannot access ftp://username:passwd@hostname/some/path/: No such file or directory.

それは同じpbのようです。

ここで回避策はありますか?

前もって感謝します。

ハオ。

4

2 に答える 2

0

ftp と hdfs は異なるプロトコルです。distcp は 2 つの異なる hdfs クラスター間でファイルをコピーするだけなので、おそらく 2 つの解決策があります。1) ftp ファイルをローカルの hdfs クラスターに配置し、distcp を EC2 クラスターに配置します。2) または、ファイルを EC2 サーバーに取得し、ファイルを EC2 クラスターに配置します。それが役に立てば幸い!

于 2013-09-18T12:40:12.937 に答える