spark的hivecontext如何在内部工作?

jv2fixgn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(435)

我是新来的Spark。我发现使用 HiveContext 我们可以连接到 hive 然后跑 HiveQL s。我运行它,它的工作。
我的疑问是 Spark 通过了吗 spark jobs 也就是说,它使用 HiveContext 仅用于从hdfs访问相应的配置单元表文件
或者
它在内部调用hive来执行查询?

ftf50wuq

ftf50wuq1#

不,spark不会调用配置单元来执行查询。spark只从配置单元读取元数据,并在spark引擎中执行查询。spark有自己的sql执行引擎,其中包括catalyst、tungsten等组件,用于优化查询并提供更快的结果。它使用来自hive的元数据和spark的执行引擎来运行查询。
hive最大的优点之一是它的元存储。它充当hadoop生态系统中许多组件的单一元存储。
说到您的问题,当您使用hivecontext时,它将访问metastore db和您的所有配置单元元数据,这可以清楚地解释您拥有的数据类型、数据在哪里、序列化和反序列化、压缩编解码器、列、数据类型以及表及其数据的每一个细节。这足以让spark理解数据。
总的来说,spark只需要metastore,metastore提供底层数据的完整细节,一旦有了元数据,它就会通过其on-execution引擎执行您所要求的查询。hive比spark慢,因为它使用mapreduce。所以,回到Hive并要求在Hive中运行它是没有意义的。
如果它能回答你的问题,请告诉我。

相关问题