Мне нужно использовать 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