Spark java多线程与运行单独的Spark作业



我是Spark的新手,正在尝试理解以下方法(hadoop上的Spark)的性能差异

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

-第一种方法

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

  • 优点:易于维护
  • 缺点:所有资源都可能被占用对于每个查询来说,性能调优可能很困难

-第二种方法

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

  • 优点:可以在查询级别进行优化
  • 缺点:难以维护

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

我在Spark多线程上唯一能找到的是:"在每个Spark应用程序中,如果多个"作业"(Spark操作)由不同的线程提交,则它们可能同时运行">

提前感谢

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

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

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

相关内容

  • 没有找到相关文章

最新更新