Spark、Hive、Hbase比较

Spark、Hive、Hbase比较,第1张

Spark、Hive、Hbase比较 1.spark
  • spark是一个数据分析、计算引擎,本身不负责存储;
  • 可以对接多种数据源,包括:结构化、半结构化、非结构化的数据;
  • 其分析处理数据的方式有多种发,包括:sql、Java、Scala、python、R等;其中spark-sql用来对结构化数据分析处理,它将数据的计算任务通过SQL的形式转换成了RDD的计算。
2.hive

数据仓库,主要负责数据存储和管理,看作MapReduce计算引擎+HDFS分布式文件系统,直观理解就是Hive的SQL通过很多层解析成了MR程序,然后存储是放在了HDFS上,并且只能用SQL这种方式来处理结构化数据,因此spark和hive是互不依赖的。

3.spark和hive的结合

实际应用两者结合,有三种方式:hive on spark、spark on hive、spark+spark hive catalog,常见的是第一种,是因为hive底层现在支持三种计算计算引擎:mrtezspark。

  • 第一种:使用hive的语法规范即hive sql,执行时编译解析成spark作业运行(当然此时底层的计算引擎是spark);

  • 第二种:因为spark本身只负责数据处理而不是存储,支撑多种数据源,当我们使用spark来处理分析存储在hive中的数据时(把hive看作一种数据源,常见的其他数据源包括:JDBC、文件等),这种模式就称为为 spark on hive。这个时候可以使用spark的各种语言的API,也可以使用hive的hql
  • 第三种:我感觉有点难,了解即可,只是现在好像发展挺快的,用的人挺多的
4.Hive VS Spark
  • Hive:数据存储和清洗,处理海量数据,比如一个月、一个季度、一年的数据量,依然可以处理,虽然很慢;
  • Spark SQL:数据清洗和流式计算,上述情况下 Spark SQL 不支持,无法处理,因为其基于内存,量级过大承受不住,并且性价比不如hive高;
  • 结合来说,hive的强项在于:1、大数据存储,2、通过sql方式进行MapReduce *** 作,降低大数据使用门槛。spark强项在于1、基于内存的MapReduce *** 作,速度快2、流式计算(对标产品flink,storm)。运用上大多两者集合,hive负责廉价的数据仓库存储,spark-sql负责告诉计算,并结合Dataframe进行复杂的数据挖掘(包括机器学习、图计算等复杂算法)。
5.Spark on hive VS Spark-sql
  • 在同时安装了Hive和spark时,我使用hive下的beeline执行HQL,执行引擎是MapReduce;使用spark下的spark-beeline执行HQL,执行引擎是spark;后者执行速度会更快;
  • Hive On Spark大体与Spark SQL结构类似,只是SQL引擎不同,但是计算引擎都是Spark。
6.Hive VS Hbase
  • Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据;其本身不存储数据,它完全依赖HDFS和MapReduce。将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。
  • 而Hbase表是Hadoop database的简称,是一种NoSql数据库,适合存放非结构化的数据,是物理表,适用于海量明细数据的随机实时查询
  • 在大数据架构中,Hive和Hbase是协作关系,流程如下:
    1. 通过ETL工具将数据源抽取到HDFS存储;
    2. 通过Hive清洗、处理和计算原始数据;
    3. HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase
    4. 数据应用从Hbase查询数据;

参考引用说明:

(17 封私信 / 80 条消息) 请问spark和hive是什么关系? - 知乎 (zhihu.com)

(17 封私信 / 80 条消息) Hbase 和 Hive 的差别是什么,各自适用在什么场景中? - 知乎 (zhihu.com)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5678879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存