【问题标题】:Spark as execution engine or spark as an application?Spark 作为执行引擎还是 Spark 作为应用程序?
【发布时间】:2020-06-13 02:49:35
【问题描述】:

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

【问题讨论】:

    标签: apache-spark hadoop pyspark hive apache-spark-sql


    【解决方案1】:

    这里有几个假设:

    • 选择 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 或更多,它们仍将被集成在同一个工具集中。

    【讨论】:

      猜你喜欢
      • 2019-11-12
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多