map reduce和spark关于hive中引擎的区别是什么?

izj3ouym  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(387)

看起来有两种方法可以使用spark作为hive的后端引擎。
第一种是直接使用 spark 作为引擎。就像这个教程。
另一种方法是使用 spark 作为的后端引擎 MapReduce . 就像这个教程。
在第一个教程中 hive.execution.enginespark . 我看不见 hdfs 卷入的。
在第二个教程中 hive.execution.engine 仍然是 mr ,但因为没有 hadoop 进程,它看起来像 mr 是Spark。
老实说,我有点困惑。我想第一个建议是 mr 已被弃用。但是那辆车在哪里 hdfs 卷入的?

neskvpey

neskvpey1#

apachespark构建dag(有向无环图),而mapreduce使用本地map和reduce。在spark中执行时,逻辑依赖形成物理依赖。
什么是达格?
dag是在执行之前建立逻辑依赖关系(把它想象成一个可视化的图形)当我们有多个map,reduce或一个reduce的输出是另一个map的输入,那么dag将有助于加快作业的速度。

dag是在tez(照片右侧)中构建的,而不是在mapreduce(左侧)中。
注意:apachespark在dag上工作,但是有stage代替map/reduce。tez有dag和Map/减少工作。为了使它更简单,我使用了map/reducecontext,但是记住apachespark有stage。但dag的概念仍然是一样的。
原因2:Map将其输出持久化到磁盘(缓冲区也被填满了,但当90%的缓冲区被填满时,输出就进入磁盘)从那里数据被合并。但是在apachespark中,中间数据被持久化到内存中,这使得它的速度更快。有关详细信息,请查看此链接

3hvapo4f

3hvapo4f2#

我有不同的理解。
通常,hive使用mr作为执行引擎,除非您使用impala,但不是所有发行版都有这个。
但在一段时间内,spark可以作为spark的执行引擎。
https://blog.cloudera.com/blog/2014/07/apache-hive-on-apache-spark-motivations-and-design-principles/ 更详细地讨论了这一点。

相关问题