1

Я хочу передать ТБ данных с S3 на Windows 2000 Windows Server, а затем обратно, что займет пару часов при использовании базового AWS CLI Copy command. Чтобы ускорить работу, я хочу использовать AWS Data Pipeline, а графическая в документации AWS Data Pipeline, по-видимому, предполагает, что данные могут по меньшей мере протекать от EC2 до S3:Передача файлов между S3 в EC2 с использованием AWS Data Pipeline

Однако мне трудно понять, как это можно сделать. Самый близкий пример, который я видел, - это концепция промежуточных данных, используя ShellCommandActivity, который передает данные из S3 DataNode в EC2, прежде чем копировать его обратно на S3.

Вместо этого я хочу скопировать данные из S3 на уже запущенный экземпляр Windows, а затем в более позднюю точку скопировать дополнительные данные обратно в S3.

ответ

1

Это может быть сделано без конвейера данных, я считаю - в основном для устранения некоторой сложности. Это задание можно выполнить с помощью AWS CLI, который также доступен в Windows XP и выше. Если у вас нет AWS CLI на машине, обратитесь к установщику MSI.

На * Никс:

aws s3 cp --recursive s3://somebucket ./ 

КОПИИ s3 ведро содержимое в каталог выполнения.

+0

Спасибо, но попытка передать TBs данных с помощью команды AWS CLI Copy может занять несколько часов со скоростью для меня колеблется от 500 до 800 Mbps. Надеюсь, что я смогу использовать AWS Data Pipeline, чтобы ускорить процесс. Я уточнил свой вопрос, чтобы подчеркнуть этот момент. –

1

Короче говоря, я не думаю, что вы могли бы получить какое-либо преимущество в производительности с помощью AWS DataPipeline для этого варианта использования.

Причина в том, что Task Runner (исполнитель, используемый Data Pipeline) - not supported on Windows platform. Таким образом, любые действия, которые вы пытаетесь запустить, будут выполняться на другой платформе, а затем вы будете scp/sftp на вашем компьютере.

Существуют различные способы, чтобы вытащить данные в экземпляр EC2 на других платформах:

  1. Использование ShellCommandActivity: Это не только позволяет загружать, но и скачать с S3 using env vairables, как INPUT1_STAGING_DIR. Хотя в их документах не упоминается об их реализации или улучшении производительности, я считаю, что он делает параллельное вытягивание с использованием многочастных API S3.
  2. Использование EMR + s3distcp и получить его в HDFS, а затем получить его на локальный диск из HDFS с помощью getMerge
1

вам нужно сделать все это в настоящее время данные на компьютере с Windows? Или вы будете получать доступ к нему с перерывами?

Вы можете попробовать только установить свой ведро S3.

Он по-прежнему будет удален, но будет работать как обычный установленный диск в Windows. Если вам нужно выполнить хэширование данных, тогда скопируйте именно те файлы, которые вам нужны в этот момент, на локальный диск. Вы можете установить S3 на S3browser, Cloudberry или на сто других клиентов S3.

1

Наконец-то я смог сделать передачу данных с ec2 на s3, используя datapipeline.

Шаги:

  1. во-первых, мы должны иметь бегун задач работает в ec2 машину.
  2. aws s3 не работает с вашим кластером ec2, поскольку ec2 не имеет прав на ваши ведра s3; используйте aws configure для добавления в ключей доступа и секретного кода.
  3. создать конвейер данных с добавлением архитектора в действие shellcommand. Используйте сценарий для вашего sh, который мог бы иметь команду, например aws s3 cp/var/tmp/xyz s3: // abc; и самое главное добавить в группу рабочего, которая обозначает ваш бегун задачи, который вы начали с ec2.

    исх: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-how-task-runner-user-managed.html

Смежные вопросы