私はEMRを超えてハイブを実行しています。 と、いくつかのファイルをすべてのEMRインスタンスにコピーする必要があります。S3からAmazon EMR HDFSにファイルをコピーするにはどうすればよいですか?
各ノードのローカルファイルシステムにファイルをコピーするだけですが、もう1つはファイルをHDFSにコピーすることですが、S3からHDFSにstrightをコピーする簡単な方法は見つかりませんでした。
これについてはどのような方法が最適ですか?
私はEMRを超えてハイブを実行しています。 と、いくつかのファイルをすべてのEMRインスタンスにコピーする必要があります。S3からAmazon EMR HDFSにファイルをコピーするにはどうすればよいですか?
各ノードのローカルファイルシステムにファイルをコピーするだけですが、もう1つはファイルをHDFSにコピーすることですが、S3からHDFSにstrightをコピーする簡単な方法は見つかりませんでした。
これについてはどのような方法が最適ですか?
これを行う最良の方法は、Hadoopのdistcpコマンドを使用することです。 (クラスタノードのいずれかで)例:
% ${HADOOP_HOME}/bin/hadoop distcp s3n://mybucket/myfile /root/myfile
これは、HDFS内/root/myfile
にmybucketという名前のS3バケットからMYFILEという名前のファイルをコピーします。この例では、S3ファイルシステムを「ネイティブ」モードで使用していることを前提としています。つまり、HadoopはS3内の各オブジェクトをファイルとして認識します。ブロックモードでS3を使用する場合は、上の例でs3nをs3に置き換えます。ネイティブS3とブロックモードの違いと上記の例の詳細については、http://wiki.apache.org/hadoop/AmazonS3を参照してください。
私はdistcpが非常に強力なツールであることを発見しました。大量のファイルをS3の内外にコピーするのに使用できるだけでなく、大きなデータセットを使用して高速のクラスタ間コピーを実行することもできます。すべてのデータを1つのノードにプッシュするのではなく、複数のノードを並列に使用して転送を実行します。これにより、大量のデータを転送する際にdistcpがかなり高速になります。これは、すべてをローカルファイルシステムに仲介としてコピーする方法とは異なります。
「Amazon Elastic MapReduce - ファイルシステムの設定」では、S3ブロックFileSystemは廃止され、そのURIプレフィックスはs3bfs://になりました。あなたのジョブフローが失敗する可能性のある競合状態」になります。
同じページによると、HDFSはS3の下では「ファーストクラス」のファイルシステムになっていますが、一時的です(Hadoopジョブが終了すると消えてしまいます)。
Amazon自体にdistcp、つまりs3distcpが実装されています。
S3のAmazon S3バケットの間、またはHDFSからアマゾン にあなたはまた、データをコピーする S3DistCpを使用することができますAmazon S3バケットにHDFSに格納されています。この例では、 - srcPatternオプションを使用して、デーモンログにコピーされるデータを制限しています。はS3DistCpは Amazon Webサービス(AWS)で動作するように最適化されDistCp、特にアマゾンシンプルなストレージサービス (アマゾンS3)を拡張したものです。 S3DistCpをジョブフローのステップとして追加して使用します。 S3DistCpを使用すると、大量のデータを Amazon S3からHDFSに効率的にコピーすることができ、Amazon Elastic MapReduce(Amazon EMR)ジョブフローの後続の手順で処理できます。この次の例では、ログファイルをコピーする方法を示し
アマゾンS3からHDFSに例をコピーし、ログファイル
elastic-mapreduce --jobflow j-3GY8JC4179IOJ --jar \
s3://us-east-1.elasticmapreduce/libs/s3distcp/1.latest/s3distcp.jar \
--args '--src,s3://myawsbucket/logs/j-3GY8JC4179IOJ/node/,\
--dest,hdfs:///output,\
--srcPattern,.*daemons.*-hadoop-.*'
distcpを使用してs3をhdfsに移動しているうちに、まだ何らかのエラーが発生しています。私の場合、40または50%を移動した後に非常に大きなファイル(300GB以上)を移動しようとしています。何か案が?? – rht