最近在学习过程中发现SparkSQL、Hive on Spark、Spark on Hive是非常容易混淆的的概念。了解三者的关系前,先要先明白几个概念。
相对于HIve on MapReduce,本质上来说,Hive on Spark是Hive把自己的引擎从MapReduce替换为更高效的SparkRDD。数据源是hive本身,当我们执行HQL时底层已经不再是将HQL转换为MapReduce任务,而是跑SparkRDD任务。
在hive-site-xml中把hiveexecutionengine配置换成spark,在hive所在节点安装Spark并配置环境变量。外部远程登录或者hive命令行模式就会执行spark任务了。
即:Hive on Spark = HQL解析 + SparkRDD引擎
Spark on Hive是以Spark角度看Hive是数据源,在Spark中配置Hive,并获取Hive中的元数据,然后用SparkSQL *** 作hive表的数据并直接翻译成SparkRDD任务。Hive只是作为一个Spark的数据源。
bin/spark-sql、bin/spark-submit采用的是这种方式。提交任务的jar必须带着hive-sitexml的配置。
即:Spark on Hive = SparkSql解析 + SparkRDD引擎
Spark on Hive的模式更加丝滑,性能更好。
HIve on Spark的模式对大数据周边组件的支持兼容性更好。
以上就是关于【数仓】对比spark-hive的两种分布式计算模式全部的内容,包括:【数仓】对比spark-hive的两种分布式计算模式、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)