EMRクラスターのHDFSファイルシステムからS3バケットへデータを移動する方法を知りたいと思います。私はSparkのS3に直接書き込むことができると認識していますが、原則として後でそれを行うのも簡単でなければならず、これまで実際にはそうでないことが分かりました。EMRのhdfs://パスへのhadoop fsパスの変換
AWSドキュメントでは、HDFSとS3間でデータを移動する目的で、s3-dist-cp
をお勧めします。 s3-dist-cp
のdocumentationには、HDFSソースをURL形式、つまりhdfs://path/to/file
に指定する必要があることが記載されています。 HDFSと私のローカルファイルシステム間でhadoop fs -get
を使ってデータを移動しましたが、これはhdfs://path/to/file
ではなくpath/to/file
の構文をとります。両者をどのようにマップするかは不明です。
私はSSHからマスターノードに取り組んでいます。それぞれの場合において
hdfs:///[public IP]/path/to/file
hdfs:///[public IP]:8020/path/to/file
hdfs:///localhost/path/to/file
hdfs:///path/to/file
/path/to/file
(および多くの変形)
:私は、次の両方の2つのおよび3つのスラッシュとのそれぞれを試み、私のコマンドは書類ごとにフォーマットされています:
S3-distの-CP --src HDFS:// ... --dest S3://私のバケット/先
私は、個々のファイルやディレクトリ全体の両方で試してみました。どちらの場合も、ソースファイルが存在しないというエラーが表示されます。私は間違って何をしていますか?