0

我是 Spark 的新手,并试图了解以下方法的性能差异(Spark on hadoop)

场景:根据批处理,我有 50 个配置单元查询要运行。有些可以并行运行,有些可以顺序运行。

- 第一种方法

所有查询都可以存储在一个配置单元表中,我可以编写一个 Spark 驱动程序来一次读取所有查询并使用 java 多线程并行运行所有查询(使用 HiveContext)

  • 优点:易于维护
  • 缺点:所有资源都可能被占用,并且每个查询的性能调整可能很困难。

- 第二种方法

使用 oozie spark 操作单独运行每个查询

  • 优点:优化可以在查询级别完成
  • 缺点:难以维护。

我找不到任何关于 Spark 将如何在第一种方法内部处理查询的第一种方法的文档。从性能的角度来看,哪种方法更好?

我能找到的关于 Spark 多线程的唯一内容是: “在每个 Spark 应用程序中,如果多个“作业”(Spark 操作)由不同的线程提交,它们可能会同时运行”

提前致谢

4

1 回答 1

0

由于您的要求是与条件并行运行配置单元查询

有些可以并行运行,有些可以顺序运行

这种工作流最好由Apache Oozie的 DAG 处理器处理。这种方法比您通过代码管理查询更清晰,即您将构建自己的 DAG 处理器,而不是使用 oozie 提供的处理器。

于 2017-02-02T05:06:03.653 回答