amazon-s3 - 关于 Amazon EMR 上的流式作业流程的问题

标签 amazon-s3 hadoop hive amazon-emr

我必须使用 Amazon EC2 + S3 + RDS + EMR 制作一个相当复杂的数据处理系统,我有一些一般性问题希望您能帮助我:

  • 我需要使用 R,然后我必须使用 Streaming Job Flow。这是否意味着我失去了 Hive 的功能并且我无法在 EMR 作业之上执行 Hive 查询来处理该数据?
  • 我可以运行多个作业流程并与之交互吗?
  • 如何使用从属作业?
  • 您能否在完成后重新运行作业?我不想做一次计算,我想根据数据进化。
  • 我可以将变量传递给乔布斯吗?
  • 自动执行此操作的正确方法是什么?

最佳答案

I need to use R, then I have to use Streaming Job Flow. Does that mean I lose the power of Hive and I can't execute a Hive query on top of the EMR Job to work with that data?

您可以以任何您想要的方式混合作业。例如,一个从 S3 读取并写入 HDFS 的 R 流作业,然后是一个从 HDFS 读取数据并写回 S3 的 Hive 作业。它们都只是 MapReduce 作业。

Can I have multiple Job Flows running and interacting with them?

在 EMR 中,您可以同时运行的作业流数量没有限制;唯一强制执行的限制是 EC2 实例的配额。目前尚不支持在两个集群的 HDFS 之间移动数据,但您可以通过 S3 轻松完成。

How can I use Dependent Jobs?

取决于您所说的依赖工作?您可以使用步进机制将作业排入队列以依次运行,只要您的工作流程可以通过单个序列描述就可以了。参见[1]

Can you re-run a job once done? I don't want to do the calculation once, I want to evolve according to the data.

就调试/探索性工作而言,使用 --alive 启动集群通常是最简单的,ssh 到主节点并直接提交作业。满意后,您可以使用步骤机制来编排您的工作流程。

Can I pass variables to Jobs?

是的;您的步骤使您可以完全访问您正在提交的作业

What is the correct way to automate this?

只要您的工作流程是线性的,步骤机制就足够了;启动集群并将要做的事情排队,确保最后一步输出到 S3,然后让集群自行终止。

垫子

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

关于amazon-s3 - 关于 Amazon EMR 上的流式作业流程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795190/

相关文章:

hadoop - 选择计数(*)在 hive 中不起作用

hadoop - hive 中的不同列

java - Jackson 和文件编码的奇怪错误

python - 尽管python脚本在本地工作,但运行MapReduce代码时出错

join - HIVE-桶联接的用例是什么

amazon-web-services - 在 Hadoop 1.0.3 中从 AWS EMR 上的 HDFS 清除数据

hadoop - 在 Hive 中将字符串转换为时间戳

amazon-web-services - AWS Glue ETL 和 PySpark 以及分区数据 : how to create a dataframe column from partition

amazon-web-services - Cloudformation lambda 函数代码引用生成的 s3 存储桶

python - 使用Python/Boto/Django直接上传到S3构建Policy