当前位置:首页 > 热点 > Hive 和 Spark的爱恨情仇恩怨交织

Hive 和 Spark的爱恨情仇恩怨交织

2026-11-14 [技术案例] 来源:人文荟萃网

 

本文转载自微信公众号「明哥的IT随笔」,作者IT明哥。转载本文请联系明哥的IT随笔公众号。 

最近在面试一些应聘大数据岗位的技术小伙伴时,发现不少朋友对业界 所谓的hive on spark和spark on hive分不太清楚;同时在日常工作中,也因为对这两个技术术语的理解不太一致,影响了进一步的技术交Hi流。所以在这里,明哥想跟大家聊聊 hive 和 spark的爱恨情仇。

hive的定位

hive 官网有描述,“Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storagvee using SQL.”,hive的定位是数据仓库,其提供了通过 sql 读写和管理分布式存储中的大规模的数据,即 hive即负责数据的存储和管理(其实依赖的是底层的hdfs文件系统或s3等对象存储系统),也负责通过 sql来处理和分析数据。所以说,hive只用来处理结构化数据,且只提供了sql的方式来进行分析处理。而且一般来 和说,hive只能对数据进行批处理。(当使用hive 的hbase映射表时,有一定的实时能力;同时,flink社区也在尝试将hive实时化-这里的实时化指小时级别的实时化,达不到分钟级别)。

spark的定位

正如 spark官网所说,“Apache spark is a unified analytics engine for large-s Scale data processing.”,spark是一个通用的处理大规模数据的分析引擎,即 spark 是一个计算引擎,而不是存储引擎,其本身并不负责数据存储。其分析处理数据的方式,可以使用sql,也可以使用java,scala, python甚至R等api;其分析处理数据的模式,既可以是批处理,也可以是流处理;而其分析处理的pa数据,可以通过插件的形式对接很多数据源,既可以是结构化的数据,也可以是半结构化甚至分结构化的数据,包括关系型数据库RDBMS,各种nosql数据库如hbase, mongodb, es等,也包括文件系统hdfs,对象存储oss, s3 等等。

hive和spark: 碰撞出的爱恨交织恩怨情仇的火花

通过以上说明,我们可以看到spark和hrkive本质上是没有关系的,两者可以互不依赖。但是在企业实际应用中,经常把二者结合起来使用。而业界spark和hive结合使用的方式,主要有以下三种:

hive on spark。在这种模式下,数据是以table的形式存储在hive中的,用户处理和分析数据,使用的是hive语法规范的 hql (hive sql)。但这些hql,在用户提的爱交执行时(一般是提交给hiveserver2服务去执行),底层会经过hive的解析优化编译,最后以spark作业的形式来运行。事实上,hive早期只支持一种底层计算引擎,即mapreduce,后期在spark 因其快速高效占领大量市场后,hive社区才主动拥抱spark,通过改造自身代码,支持了spark作为其底层计算引恨情擎。目前hive支持了三种底层计算引擎,即mr, tez和spark.用户可以通过set hive.execution.engine=mr/tez/spark来指定具体使用哪个底层计算引擎。 spark on hive。上文已经说到,spark本身只负责数据计算处理,并不负责数据存储。其计算处理的数据源,可以以插件的形式支持很多仇恩种数据源,这其中自然也包括hive。当我们使用spark来处理分析存储在hive中的数据时,这种模式就称为为 spark on hive。这种模式下,用户可以使用spark的 java/scala/pyhon/r 等api,也可以使用spark语法规范的sql ,甚至也可以使用hive 语法规范的hql 。而之所以也能使用hql,怨交是因为 spark 在推广面世之初,就主动拥抱了hive,通过改造自身代码提供了原生对hql包括hive udf的支持(其实从技术细节来将,这里把hql语句解析为抽象语法书ast,使用的是hive的语法解析器,但后续进一步的优化和代码生成,使用的都是spark sql 的catalyst),这也是市场推广策略的一种吧。 spark +Hi spark hive catalog。这是spark和hive结合的一种新形势,随着数据湖相关技术的进一步发展,这种模式现在在市场上受到了越来越多用户的青睐。其本质是,数据以orc/parquet/delta lake等格式存储在分布式文件系统如hdfs或对象存储系统如s3中,然后通过使用spark计算引擎提供的scala/javvea/python等api或spark 语法规范的sql来进行处理。由于在处理分析时针对的对象是table, 而table的底层对应的才是hdfs/s3上的文件/对象,所以我们需要维护这种table到文件/对象的映射关系,而spark自身就提供了 spark hive catalog来维护这种table到文件/对象的映射关系。注意这 和里的spark hive catalog,其本质是使用了hive 的 metasore 相关 api来读写表到文件/对象的映射关系(以及一起其他的元数据信息)到 metasore db如mysql, postgresql等数据库中。(由于spark编译时可以把hive metastore api等相关代码一并打包到spark的二进制安装 S包中,所以使用这种模式,我们并不需要额外单独安装hive)。

 

(责任编辑:白皮书下载)

推荐文章
  • 标签: 银河通用 Galbot S1 银河星脑 具身智能

    标签: 银河通用 Galbot S1 银河星脑 具身智能 云梦级3月2日云梦级消息,银河通用机器人近日已完成25亿元新一轮融资,投资方包括国家大基金、中国石化、中信集团投资控股、上汽集团金控、中银资产、亦庄国投、成都科创投、贵安鲲鹏基金、中芯聚源、无锡创投、...[详细]
  • 标签: 追觅科技 俞浩 围脖侠 清朗行动

    标签: 追觅科技 俞浩 围脖侠 清朗行动 云梦级6月10日云梦级消息,微博平台官方账号@围脖侠 发文表示,经核实,账号@俞浩-爱送黄金 被某企业投诉,其作为网络名人账号以“喊话”等形式发布质疑、拉踩企业的违规内容,因违反中央网信办“清朗·优化...[详细]
  • 前员工解释苹果实施应用跟踪透明度变化后,Facebook将失去什么?

    前员工解释苹果实施应用跟踪透明度变化后,Facebook将失去什么? 在苹果准备在iOS 14.5中实施应用跟踪透明度变化之际,CNBC采访了几位前Facebook员工,以了解Facebook为何如此强烈地反对计划中的隐私更新。从今年春天开始,Facebook和其他应用...[详细]
  • 一文学会Hive解析Json数组

    一文学会Hive解析Json数组 在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析。接下来就聊聊Hive中是如何...[详细]
  • 谷歌母公司同一数据中心和能源基础设施公司达成收购协议 总额47.5亿美元

    谷歌母公司同一数据中心和能源基础设施公司达成收购协议 总额47.5亿美元 12月23日消息,据外媒报道,为推动人工智能的发展,OpenAI、xAI等厂商在大力投资建设数据中心,随着数据中心投入运营,对电力的需求也大幅增加,电力供应已成为人工智能发展的重要一环。 而从外媒最新...[详细]
  • 苹果第二财季业绩超预期 盘后股价涨超3%

    苹果第二财季业绩超预期 盘后股价涨超3% 新浪科技讯 北京时间4月29日凌晨消息,苹果公司今天发布了2021财年第二财季业绩,盘后股价涨超3%。 苹果表示,将把股息提高7%至每股0.22美元,并授权900亿美元的股票回购,大大高于去年的500...[详细]
  • 标签: Agent

    标签: Agent 撰文 | 李信马 题图 | AI生图 了不起的智能体:发现和介绍那些正在改变世界的Agent,这里有现场、有对话,还有没被写进新闻的细节。 要是在可选职业里做个排序,客服大概是笔者最不想从事的几个选项...[详细]
  • 标签: 豆包 中兴 努比亚 AI原生手机

    标签: 豆包 中兴 努比亚 AI原生手机 云梦级12月1日云梦级消息,据豆包官方公众号透露,今天豆包手机助手以技术预览版的形式首次和大家见面。豆包手机助手是豆包和手机厂商在操作系统层面合作的手机AI助手。基于豆包大模型的能力和手机厂商的授权,...[详细]
  • 亚马逊云计算业务三季度营收161亿美元 再创新高

    亚马逊云计算业务三季度营收161亿美元 再创新高 10月29日消息,据国外媒体报道,美国五大科技巨头中的苹果和亚马逊,同在当地时间周四发布了最新一季度的财报,作为全球顶尖的云计算服务提供商,亚马逊云计算业务的营收,是再次创下了新高。 亚马逊的财报显示...[详细]
  • 寒武纪宣布实现 DeepSeek-V4全系列模型 Day0适配并开源优化代码

    寒武纪宣布实现 DeepSeek-V4全系列模型 Day0适配并开源优化代码 寒武纪今日宣布,已基于 vLLM 推理框架完成对深度求索(DeepSeek)最新开源模型 DeepSeek-V4 全系列的“Day0”适配。此次改装涵盖285B 参数的 Flash 版本及1.6T 参...[详细]