![](/img/trans.png)
[英]Hive on Spark and Spark as hive execution engine: What's the difference
[英]What is the difference between Map Reduce and Spark about engine in Hive?
我有不同的理解。
通常,除非您使用IMPALA,否则Hive将MR用作执行引擎,但并非所有发行版都具有此功能。
但是一段时间以来,Spark可以用作Spark的执行引擎。
https://blog.cloudera.com/blog/2014/07/apache-hive-on-apache-spark-motivations-and-design-principles/对此进行了更详细的讨论。
Apache Spark构建DAG(有向无环图),而Mapreduce与本机Map和Reduce一起使用。 在Spark中执行时,逻辑依赖性形成物理依赖性。
现在什么是DAG ?
DAG在执行之前先构建逻辑依赖项(以可视化图的形式考虑)。当我们有多个映射并且reduce或一个reduce的输出是另一张映射的输入时,DAG将帮助加速作业。 DAG是在Tez(照片的右侧)中构建的,而不是在MapReduce(左侧)中构建的。
注意: Apache Spark可在DAG上运行,但具有代替Map / Reduce的阶段。 Tez有DAG,可以在Map / Reduce上工作。 为了简化起见,我使用了Map / Reduce上下文,但请记住Apache Spark有阶段。 但是DAG的概念保持不变。
原因2: Map会将其输出持久保存到磁盘。(也有缓冲区,但是当90%的缓冲区被填充时,输出将进入磁盘)从那里开始数据合并。 但是在Apache Spark中,中间数据会保留在内存中,从而使其速度更快。 检查此链接以获取详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.