作者:love四叶草health | 来源:互联网 | 2023-09-04 09:37
hadoop是一个分布式存储系统,他可以将我们的日志、数据等存储到不同的节点上(当数据十分大的时候),有时候一份数据会被存储到不同机器的不同磁盘上面。
那么问题来了:
我们想取出这么一整份数据并做对应计算怎么办呢?
这个时候,mapreduce就应运而生。它是一个依托于hadoop上的计算引擎,主要就是对数据进行合并汇总等操作,本身并不存储数据。
那hive是什么呢?
hive是基于hadoop的一个数据仓库工具。由于mapreduce程序比较复杂,故而hive对他做了一层封装。它可以将我们写的hql翻译成mapreduce去计算数据。说白了,它就是一个搞翻译的。
但是由于mapreduce每次都是对磁盘进行操作,每次中间job操作的输出结果,都是先存到磁盘里面的,这样再去读取中间job的数据再进行操作的时候,速度就很慢。
这个时候 spark计算引擎就可以解决这个问题,spark每次中间job的操作结果,都是存入内存,之后的读取也是直接从内存读出,大大的提高了数据计算的速度,也因为如此 spark的计算成本要比mapreduce贵(一个用内存过渡,一个用磁盘过渡)。当然spark并不止依托于分布式存储系统上面。
mapreduce和spark的共同点之一:他们均不存储数据,只对数据进行操作(计算)
浅显理解,本文完毕。