Вопросы о потоковой передаче рабочих мест в Amazon EMR - PullRequest
1 голос
/ 17 октября 2011

Мне нужно создать довольно сложную систему обработки данных с использованием Amazon EC2 + S3 + RDS + EMR, и у меня есть несколько общих вопросов, в которых, я надеюсь, вы мне поможете:

  • Мне нужноиспользуйте R, тогда я должен использовать Streaming Job Flow.Означает ли это, что я теряю силу Hive и не могу выполнить запрос Hive поверх задания EMR для работы с этими данными?
  • Могу ли я запустить и взаимодействовать с несколькими потоками заданий?
  • Как я могу использовать зависимые задания?
  • Можете ли вы перезапустить задание, когда закончите?Я не хочу выполнять вычисления один раз, я хочу развиваться в соответствии с данными.
  • Могу ли я передавать переменные в Jobs?
  • Как правильно это автоматизировать?

1 Ответ

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

Мне нужно использовать R, затем я должен использовать Streaming Job Flow. Означает ли это, что я теряю силу Hive и не могу выполнить запрос Hive поверх задания EMR для работы с этими данными?

Вы можете смешивать задания любым удобным для вас способом. Например, потоковое задание R, которое читает из S3 и записывает в HDFS, затем следует задание Hive, которое считывает эти данные из HDFS и записывает обратно в S3. Все они просто рабочие места MapReduce.

Могу ли я иметь несколько рабочих потоков, работающих и взаимодействующих с ними?

В EMR нет ограничений на количество рабочих процессов, которые вы можете запускать одновременно; единственное установленное ограничение - это квота на экземпляры EC2. Пока нет поддержки для перемещения данных между HDFS двух кластеров, но вы можете легко пройти через S3.

Как я могу использовать зависимые задания?

Зависит от того, что вы подразумеваете под зависимой работой? Вы можете использовать пошаговый механизм для постановки в очередь заданий, запускаемых после друг друга, при условии, что ваш рабочий процесс может быть описан единственной последовательностью, с которой вы в порядке. см. [1]

Можете ли вы повторно выполнить работу, когда закончите? Я не хочу делать вычисления один раз, я хочу развиваться в соответствии с данными.

С точки зрения отладочной / исследовательской работы зачастую проще всего запустить кластер с --alive, ssh на главном узле и напрямую отправлять задания. Когда вы будете счастливы, вы можете использовать пошаговый механизм для организации вашего рабочего процесса.

Могу ли я передавать переменные в Jobs?

Да; ваши шаги дают вам полный доступ к работе, которую вы отправляете

Как правильно это автоматизировать?

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

Мат

[1] http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?ProcessingCycle.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...