1

S3 から EC2 Windows Server に TB のデータを転送したいのですが、基本的なAWS CLI コピー コマンドを使用すると数時間かかります。スピードアップを支援するために、 AWS Data Pipelineを利用したいと考えています。AWS Data Pipelineドキュメントのグラフィックは、データが少なくとも EC2 から S3 に流れることができることを示唆しているようです。

それでも、それがどのように行われるかを理解するのは難しいと感じています。私が見た最も近い例は、S3 にデータをコピーして戻す前に、S3 DataNodeから EC2 にデータを転送するShellCommandActivityを利用してデータをステージングするという概念です。

代わりに、既に実行中の Windows インスタンスで S3 からデータをコピーし、後でさらにデータを S3 にコピーしたいと考えています。

4

4 に答える 4

1

やっと、datapipeline を使って ec2 から s3 へのデータ転送ができました。

手順:

  1. まず、タスク ランナーを ec2 マシンで実行する必要があります。
  2. ec2 には s3 バケットに対する権限がないため、aws s3 は ec2 クラスターでは機能しません。aws configure を使用して、アクセス キーとシークレット コードを追加します。
  3. アーキテクトが shellcommand アクティビティを追加して、データ パイプラインを作成します。aws s3 cp /var/tmp/xyz s3://abc; のようなコマンドを持つ可能性のある sh のスクリプト パスを使用します。最も重要なのは、ec2 で開始したタスク ランナーを示すワーカー グループに追加することです。

    参照: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-how-task-runner-user-managed.html

于 2016-05-12T11:28:12.600 に答える
1

要するに、このユースケースで AWS DataPipeline を使用してもパフォーマンス上の利点が得られるとは思えません。

理由は、Task Runner (Data Pipeline で使用されるエグゼキューター) がWindows プラットフォームでサポートされていないためです。したがって、実行しようとするアクティビティは、実際には別のプラットフォームで実行され、マシンに scp/sftp します。

他のプラットフォームの EC2 インスタンスにデータをプルするには、さまざまな方法があります。

  1. ShellCommandActivity の使用: アップロードだけでなく、INPUT1_STAGING_DIR などのenv vairables を使用して S3 からダウンロードすることもできます。ドキュメントには実装やパフォーマンスの改善については言及されていませんが、S3 のマルチパート API を使用して並列プルを行っていると思います。
  2. EMR + s3distcpを使用して HDFS に取得し、getMerge を使用して HDFS からローカル ディスクに取得します。
于 2015-05-18T23:40:23.753 に答える
1

このすべてのデータが Windows マシンに存在する必要がありますか? それとも断続的にアクセスするつもりですか?

S3 バケットをマウントしてみてください。

これは依然としてリモートですが、Windows で通常のマウントされたドライブのように機能します。データの処理が必要な場合は、その時点で必要なファイルだけをローカル ディスクにコピーします。S3browser、Cloudberry、または他の 100 の S3 クライアントで S3 をマウントできます。

于 2015-05-19T20:53:58.283 に答える