【问题标题】:Why use Hive on Spark instead of Spark-SQL?为什么在 Spark 上使用 Hive 而不是 Spark-SQL?
【发布时间】:2015-07-23 15:31:27
【问题描述】:

我是数据科学领域的新手,我不明白为什么有人想要将 Hive 连接到 Spark 而不仅仅是使用 Sqark-SQL。

在 Spark 上使用 Hive 而不是 Spark-SQL 有什么好处(除了能够在生产中使用 Hive 代码)?

谢谢

【问题讨论】:

    标签: apache-spark hive bigdata apache-spark-sql


    【解决方案1】:

    上面的答案不正确。 Hive 和 SparkSQL 之间共有的一个组件是 SemanticAnalyzer。 Hive 具有明显更好的 SQL 支持和更复杂的基于成本的优化器。 我的建议是在 Tez 上使用 Hive,而不是在 Spark 或 SparkSQL 上使用 Hive,因为它已准备好生产,更稳定且可扩展。

    【讨论】:

    • 恭喜穆斯塔法,您将获得一些积分。我过去曾为 spark sql 做出过贡献,并曾在客户项目中与 spark sql 合作过。你的回答得到了这两种经验的支持。尤其是“Hive 具有明显更好的 SQL 支持”的说法已经过时了。
    • 感谢 Mostafa,我正在尝试在我的大学将 Spark 安装在他们的 HPC cluster 上,并且环境与大多数集群不同(它的分布式文件系统使用 Lustre 而不是 HDFS)。你会推荐 Hive on Spark 吗?我不希望安装请求(Hive、Tez 和 Hadoop 到 Lustre 的连接器)让管理员负担过重,除非它有显着的好处。
    【解决方案2】:

    嗯,似乎这里唯一的答案给出了使用 tez 的建议...

    回到最初的问题,使用 Hive on Spark 的好处,恕我直言,好处主要是更好的 hive 功能支持,而不是 HiveQL 语言支持,Hive on Spark 对 hiveserver2 和安全功能有更好的支持。

    在 SparkSQL 中它们确实有问题,SparkSQL 中有一个 hiveserver2 impl,但是 在最新版本 (1.6.x) 中,SparkSQL 中的 hiveserver2 不再与 hivevar 和 hiveconf 参数一起使用,并且通过 jdbc 登录的用户名也不起作用...见https://issues.apache.org/jira/browse/SPARK-13983

    我们的要求是以安全的方式将 spark 与 hiveserver2 一起使用(使用 认证和授权),目前单用SparkSQL还不行 提供这个,我们不需要使用 HDFS 或 YARN 等其他 hadoop 组件,我们使用的是独立的 spark,因此对于我们的要求,我们在 Spark 上使用 ranger/sentry + Hive。

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2015-09-23
      • 1970-01-01
      相关资源
      最近更新 更多