大数据刚出来的时候,并不是很完善。发展的不是很快,尤其是在计算服务上,当时使用的是第一代mr计算引擎,相对来说计算并不是那么快。让大数据快速发展的是2009年伯克利大学诞生的spark,并在2013年成为Aparch的顶级开源项目。使大数据发展比较迅速、但是随着spark的快速发展,对于不太会用spark的或者一直用hiveSql的程序员,但是又想使用spark。提出hive添加spark作为第三个后端
在这个概念上就衍生了两种模式,一种是hive on spark,另外一种是spark on hive。我们来谈谈这两种模式是怎样实现的。
hive on spark
hive on spark 在执行过程中,与hive直接执行的时候除了计算引擎由原先mr引擎更换为spark引擎外,其余的与hive是一致的,存储、sql解析等都是由hive负责的。
spark on hive
spark on hive 在执行中,也是使用spark引擎,但是与hive on spark不同的是,spark on hive是除了利用hive做存储,其他都是在spark上完成的,例如:解析sql是利用spark进行解析的,然后放在spark上执行,其底层本质是rdd的形式。
结论
综上所述,其实不管是hive on spark还是spark on hive 都是使用的spark引擎执行。只是在解析优化时使用的不同的方式。
参考文档:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
版权归原作者 玩数据的小彬 所有, 如有侵权,请联系我们删除。