首页 > 解决方案 > Spark 作为执行引擎还是 Spark 作为应用程序?

问题描述

哪个选项更好用,spark 作为 hive 上的执行引擎还是使用 spark SQL 访问 hive 表?为什么?

标签: apache-sparkhadooppysparkhiveapache-spark-sql

解决方案


这里有几个假设:

  • 选择 SQL 的原因是为了保持用户友好,例如,如果您有业务用户试图访问数据。
  • 考虑使用 Hive,因为它提供了类似 SQL 的接口和数据持久性

如果这是真的,Spark-SQL 可能是更好的前进方式。它更好地集成在 Spark 中,并且作为 Spark 的一个组成部分,它将提供更多功能(一个示例是结构化流)。您仍将获得 Spark 的用户友好性和类似 SQL 的界面,因此您将获得全部好处。但是您只需要从 Spark 的角度来管理您的系统。Hive 安装和管理仍将存在,但从单一角度来看。

将 Hive 与 Spark 一起用作执行引擎将使您受到限制,具体取决于 Hive 的库在将您的 HQL 转换为 Spark 方面的能力。他们可能做得很好,但您仍然会失去 Spark SQL 的高级功能。与 Spark SQL 相比,新功能可能需要更长的时间才能集成到 Hive 中。

此外,由于 Hive 向最终用户公开,一些高级用户或数据工程团队可能希望访问 Spark。这将导致您管理两个工具。在这种情况下,与仅使用 Spark-SQL 相比,系统管理可能会变得更加繁琐,因为 Spark SQL 有可能同时为非技术用户和高级用户提供服务,即使高级用户使用 pyspark、spark-shell 或更多,它们仍将被集成在同一个工具集中。


推荐阅读