我需要使用R,那么我必须使用Streaming Job Flow。这是否意味着我失去了Hive的力量,我无法在EMR作业上执行Hive查询来处理这些数据?
您可以以任何您想要的方式混合作业。例如,R流作业从S3读取并写入HDFS,然后写入Hive作业,从HDFS读取数据并将其写回S3。它们都只是MapReduce作业。
我可以运行多个作业流程并与它们进行交互吗?
EMR没有限制您可以同时运行的工作流数量;实施的唯一限制是EC2实例的配额。没有支持在两个群集的HDFS之间移动数据,但您可以轻松地通过S3轻松完成。
如何使用从属作业?
取决于你的意思是依靠工作吗?您可以使用步骤机制对作业进行排队,以便只要您的工作流程可以通过单一序列进行描述即可。请参阅[1]
您可以在完成后重新运行作业吗?我不想做一次计算,我想根据数据进行演变。
在调试/探索性工作方面,使用--alive,ssh启动主节点并直接提交作业通常最容易。一旦你开心,你可以使用步骤机制来编排你的工作流程。
我可以将变量传递给作业吗?
是的;您的步骤可让您完全访问您提交的工作
什么是自动执行此操作的正确方法?
只要您的工作流程是线性的,步骤机制应该足够了;启动集群,并将事情排队等待,确保最后一步输出到S3,并让集群自行终止。
垫
[1] http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?ProcessingCycle.html