gpt4 book ai didi

apache-spark - Spark SQL是否使用Hive Metastore?

转载 作者:行者123 更新时间:2023-12-03 11:09:53 30 4
gpt4 key购买 nike

我正在开发Spark SQL应用程序,但有几个问题:

  • 我读到Spark-SQL在封面下使用Hive metastore?这是真的?我说的是一个纯粹的Spark-SQL应用程序,该应用程序未显式连接到任何Hive安装。
  • 我正在启动一个Spark-SQL应用程序,不需要使用Hive。有什么理由要使用Hive吗?据我了解,Spark-SQL比Hive快得多。因此,我认为没有任何理由可以使用Hive。但是我正确吗?
  • 最佳答案

    I read that Spark-SQL uses Hive metastore under the cover? Is this true? I'm talking about a pure Spark-SQL application that does not explicitly connect to any Hive installation.



    Spark SQL不在幕后使用Hive元存储(除非您在 in-memory中进行相反的操作,否则默认为 spark-shell非Hive目录)。

    默认的外部目录实现由 spark.sql.catalogImplementation 内部属性控制,并且可以是两个可能的值之一: hivein-memory

    使用 SparkSession知道正在使用什么目录。
    scala> :type spark
    org.apache.spark.sql.SparkSession

    scala> spark.version
    res0: String = 2.4.0

    scala> :type spark.sharedState.externalCatalog
    org.apache.spark.sql.catalyst.catalog.ExternalCatalogWithListener

    scala> println(spark.sharedState.externalCatalog.unwrapped)
    org.apache.spark.sql.hive.HiveExternalCatalog@49d5b651

    请注意,我使用的 spark-shell确实会启动Hive感知的 SparkSession,因此我必须使用 --conf spark.sql.catalogImplementation=in-memory来启动它以将其关闭。

    I am starting a Spark-SQL application, and have no need to use Hive. Is there any reason to use Hive? From what I understand Spark-SQL is much faster than Hive; so, I don't see any reason to use Hive.



    这是一个非常有趣的问题,可以有不同的答案(有些答案甚至主要基于观点,因此我们必须格外小心并遵守StackOverflow规则)。

    Is there any reason to use Hive?



    不。

    但是...如果您想使用Spark 2.2的最新功能(即基于成本的优化器),则可能需要考虑将其作为 ANALYZE TABLE进行成本统计可能会非常昂贵,因此对于在以下情况下使用过的表进行一次处理在不同的Spark应用程序运行中再次进行操作可以提高性能。

    请注意,没有Hive的Spark SQL也可以做到,但是有一些限制,因为本地默认元存储仅用于单用户访问,并且无法同时使用跨提交的Spark应用程序重用元数据。

    I don't see any reason to use Hive.



    我写了一个博客文章 Why is Spark SQL so obsessed with Hive?! (after just a single day with Hive),我问了一个类似的问题,令我惊讶的是,直到现在(我在2016年4月9日发布博客文章大约一年后),我认为我已经理解了Hive metastore的概念为何如此重要的,特别是在多用户Spark笔记本环境中。

    Hive本身只是HDFS上的数据仓库,因此如果有Spark SQL,不会有太多用处,但是Hive仍然有一些概念做得很好,这些概念在Spark SQL中有很多用处(直到它完全独立为止)一个类似Hive的metastore)。

    关于apache-spark - Spark SQL是否使用Hive Metastore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43874124/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com