【问题标题】:Questions about Streaming Job Flow on Amazon EMR有关 Amazon EMR 上的流式作业流程的问题
【发布时间】:2011-10-17 14:25:39
【问题描述】:

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

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

【问题讨论】:

    标签: amazon-s3 hadoop hive amazon-emr


    【解决方案1】:

    我需要使用 R,然后我必须使用 Streaming Job Flow。这是否意味着我失去了 Hive 的功能,并且无法在 EMR 作业之上执行 Hive 查询来处理该数据?

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

    我可以运行多个作业流程并与之交互吗?

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

    如何使用依赖作业?

    取决于你所说的依赖工作?您可以使用 step 机制将作业排队以在彼此之后运行,只要您的工作流程可以用单个序列来描述就可以了。见 [1]

    您可以在完成后重新运行作业吗?我不想做一次计算,我想根据数据进化。

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

    我可以将变量传递给 Jobs 吗?

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

    自动化的正确方法是什么?

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

    垫子

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 2020-12-17
      • 1970-01-01
      • 2013-07-20
      相关资源
      最近更新 更多