大数据时代的争议:Spark 能替代 Hive 吗?

本文作者:曾就职传统通讯运营商,负责BI项目的开发;目前转型互联网公司,就职于某厂负责相关的大数据仓库建设工作。 随着的几年的架构沉淀,工作上形成了离线以 Hive 为主,Spark 为辅, 实时处理用 Flink 的大数据架构体系及 Impala, Es,Kylin 等应用查询引擎。

随着业务的发展,日常工作中会面试各种各样的人,接触下来发现一个比较奇怪的现象:

学习 Spark 的面试者普遍认为 Spark 必然会替代 Hive 成为新的一代大数据仓库标准。

同时,培训市场也出现了 Hive 已经落后,学习大数据只要学习 Spark 相关言论。

但结合实际工作的情况来看,这类说法和实际情况并不相符,针对数据仓库的几个重要特征做了对比,说明各种利弊,希望对今后各位的面试有一定的帮助。

希望后续的面试者能够去积极了解一些数据仓库需要的配置组件及系统,避免人云亦云,面试的时候引起不必要的争议。

数据仓库特点

hive

spark

数据仓库是面向主题的

可以实现

可以实现

数据仓库是集成的(统一存储)

天然与 HDFS集成

可以将数据存储在 HDFS

数据仓库是不可更新的

满足

用 HDFS 可以满足

元数据管理

拥有自己的 meta 库

无 meta 库,需要用 Hive 的

数据源同步

Sqoop Flume 等配套组件

无相关配套组件

由上图可以看出,Spark 不适合作为数据仓库的点有如下几个方面:

  • Spark 本身没有自己的存储与 meta 库两种最核心的东西,需要依赖 HDFS 和 Hive 的相关功能,而社区的发展趋势也没有往这边开发的意思,故 Spark 是作为一个计算引擎的定位长期存在的;
  • RDD, DataSet、DataFrames 的三种计算形式 由于计算过程中没有一个持久化的计算元数据管理导致后续对于数据血缘的解析难度过大,无法满足数据仓库调度对于数据体系依赖分析及元数据管理相关要求,故不能作为数据仓库的主要使用方式;
  • SparkSql 是最有潜力成为数据仓库的主要形式,但目前来说仍然是以 Hive meta库作为元数据管理 hdfs 作为数据存储,由于本身的 sql 解析器不如 Hive,一般情况下是用 Hive 的 sql 解析器来替换本身的解析器。本质来说 SparkSql 只是作为hive 的计算速度强化版使用;
  • 在 CPU 密集任务及复杂计算任务上,它的性能及稳定性远远比不上 Hive;
  • Spark 在运行过程中经常会出现内存错误。

反观 Hive,拥有一套完整的 Hadoop 生态组件

  • Sqoop 支持 RDS 到 Hive(HDFS) 的互相同步;
  • Flume 支持日志采集到 HDFS;
  • 拥有自己一套完整的 meta 库支持元数据管理;
  • 语言以 sql 为准,非常方便后续数据仓库的维护,比如数据血缘解析,过滤条件解析;
  • Hive 的稳定性是目前的 Spark 无法保证的,在数据仓库做分层设计的情况下,底层的稳定性要求会远高于速度(如果底层一个任务失败,可能导致上层的几千个任务无法执行)。

基于上面的条件,以目前社区的发展趋势来说,Spark 替代 Hive 成为数据仓库的首选时间会比较漫长,而且随着 Hive 的 sql 执行引擎逐步优化后,Spark 的优势会越来越低。

就目前来说,SparkSql 作为数据仓库上层做加快查询的定位相对合适点,并不适合作为整套数据仓库的尤其是需要强稳定性的底层数据调度查询。

数据仓库是一套系统性工程,如果单纯以计算性能作为唯一选型标准,难免会陷入后续无尽的维护陷阱中。

原文发布于微信公众号 - 进击的Coder(FightingCoder)

原文发表时间:2018-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

小米数据工场的技术架构和小团队如何玩转大数据

本文是WOT2016互联网运维与开发者大会的现场干货, 新一届主题为WOT2016企业安全技术峰会将在2016年6月24日-25日于北京珠三角JW万豪酒店隆重...

45550
来自专栏大数据和云计算技术

​大数据和云计算技术周报(第37期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

11310
来自专栏数据猿

【视频&PPT】《数据猿巅峰思享会》之巨杉数据库CTO王涛:大数据和数据库的未来趋势

<数据猿导读> 在去年的Strata+Hadoop World大会中,巨杉数据库作为唯一的中国参展商在大会上做了展览和演讲,在本次《数据猿巅峰思享会》现场,王涛...

35160
来自专栏LanceToBigData

Hadoop(一)之初识大数据与Hadoop

前言   从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢?   学习Hado...

34580
来自专栏养码场

程序员在大数据面试时的争议:Spark能替代Hive?

本文作者:曾就职传统通讯运营商,负责BI项目的开发;目前转型互联网公司,就职于某厂负责相关的大数据仓库建设工作。

48630
来自专栏Albert陈凯

大数据人工智能词汇索引S大数据人工智能词汇索引S

大数据人工智能词汇索引S S ---- 流处理(Stream processing):流处理被设计来用于持续地进行流数据的处理。与流分析技术(指的是能够持续地计...

38770
来自专栏智能计算时代

75个每个人都应该知道的大数据术语

在第一篇文章中介绍了以下术语:算法,分析,描述性分析,规定分析,预测分析,批处理,Cassandra,云计算,集群计算,黑暗数据,数据湖,数据挖掘,数据科学家,...

53440
来自专栏PPV课数据科学社区

【数据分析】不使用Hadoop的五大理由

作为Hadoop 曾经的超级粉丝,Joe Brightly承认自己在很多方面非常热爱Hadoop,比如“可以处理PB级别的数据;可以扩展到数千个...

37080
来自专栏京东技术

助力存储成本优化,京东、陌陌、TalkingData共同探讨Alluxio的应用

许多大型企业都有结构化大数据,围绕大数据,大型互联网企业和初创企业“百家争鸣”,各家同质应用竞争日益激烈,服务范围涵盖大数据应用、硬件、技术等,随着数据爆炸性增...

14120
来自专栏IT大咖说

Hadoop集群从180到1500,携程大数据实践之路

内容来源:2018 年 09 月 08 日,携程大数据平台技术总监张翼在“2018开源数据库论坛暨首届MariaDB中国用户者大会”进行《大数据平台在携程的实践...

20530

扫码关注云+社区

领取腾讯云代金券