получение больших наборов данных на карту эластичности Amazon - PullRequest
1 голос
/ 27 апреля 2011

Есть несколько больших наборов данных (25 ГБ +, загружаемых в Интернете), которые я хочу поиграть с помощью Amazon EMR.Вместо того, чтобы загружать наборы данных на свой компьютер, а затем повторно загружать их в Amazon, каков наилучший способ передачи наборов данных в Amazon?

Запустить ли экземпляр EC2, загрузить наборы данных (используя wget) в S3 из экземпляра, а затем получить доступ к S3, когда я запускаю свои задания EMR?(Я раньше не использовал облачную инфраструктуру Amazon, поэтому не уверен, имеет ли смысл только что сказанное.)

Ответы [ 3 ]

4 голосов
/ 09 июля 2011

Я рекомендую следующее ...

  1. запустить кластер EMR

    elastic-mapreduce --create --alive --other-options-here

  2. войти на главный узел и загрузить данные оттуда

    wget <a href="http://blah/data" rel="nofollow">http://blah/data</a>

  3. копирование в HDFS

    hadoop fs -copyFromLocal data /data

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

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

Мат

1 голос
/ 05 октября 2011

Если вы только начинаете и экспериментируете с EMR, я предполагаю, что вы хотите это на s3, чтобы вам не приходилось запускать интерактивный сеанс Hadoop (вместо этого используйте мастера EMR через консоль AWS).

Лучший способ - запустить микроэкземпляр в том же регионе, что и ваша корзина S3, загрузить на эту машину с помощью wget, а затем использовать что-то вроде s3cmd (что, вероятно, потребуетсяустановить на экземпляр).В Ubuntu:

wget http://example.com/mydataset dataset
sudo apt-get install s3cmd 
s3cmd --configure
s3cmd put dataset s3://mybucket/

Причина, по которой вы хотите, чтобы ваш экземпляр и корзина s3 находились в одном регионе, заключается в том, чтобы избежать дополнительных расходов на передачу данных.Несмотря на то, что вы будете платить в ограниченной полосе пропускания экземпляру для wget, переход к S3 будет бесплатным.

0 голосов
/ 29 сентября 2011

Я не уверен в этом, но мне кажется, что hadoop должен иметь возможность загружать файлы прямо из ваших источников.

просто введите http://blah/data в качестве ввода, и hadoop долженсделай все остальноеКонечно, он работает с s3, почему он не должен работать с http?

...