pig2 发表于 2018-4-29 10:37:43

spark sql和hive on spark的区别



刚入门,我们搞不清楚spark sql和hive on spark有什么区别。
spark sql是sql语句
hive on spark也是sql语句,这二者有什么区别?
其实最大的区别是spark sql用的是spark 引擎,hive on spark是hive借用spark的引擎。
这是二者最大的区别。






pig2 发表于 2018-4-29 10:41:10

继续补充:



SparkSQL作为Spark生态的一员继续发展,而不再受限于Hive,只是兼容Hive;而Hive on Spark是一个Hive的发展计划,该计划将Spark作为Hive的底层引擎之一,也就是说,Hive将不再受限于一个引擎,可以采用Map-Reduce、Tez、Spark等引擎。


SparkSQL的两个组件
SQLContext:Spark SQL提供SQLContext封装Spark中的所有关系型功能。可以用之前的示例中的现有SparkContext创建SQLContext。
DataFrame:DataFrame是一个分布式的,按照命名列的形式组织的数据集合。DataFrame基于R语言中的data frame概念,与关系型数据库中的数据库表类似。通过调用将DataFrame的内容作为行RDD(RDD of Rows)返回的rdd方法,可以将DataFrame转换成RDD。可以通过如下数据源创建DataFrame:已有的RDD、结构化数据文件、JSON数据集、Hive表、外部数据库。


当然上面两个组件在spark2中已经被封装为SparkSession。

Hive on Spark


​ hive on Spark是由Cloudera发起,由Intel、MapR等公司共同参与的开源项目,其目的是把Spark作为Hive的一个计算引擎,将Hive的查询作为Spark的任务提交到Spark集群上进行计算。通过该项目,可以提高Hive查询的性能,同时为已经部署了Hive或者Spark的用户提供了更加灵活的选择,从而进一步提高Hive和Spark的普及率。


Hive on Spark与SparkSql的区别
​ hive on spark大体与SparkSQL结构类似,只是SQL引擎不同,但是计算引擎都是spark!




参考
https://www.jianshu.com/p/a38215b6395c

shenjp 发表于 2018-5-2 09:07:56

谢谢分享,正在学习这方面的知识

yongjian3311 发表于 2018-6-7 09:35:12

现在的情况是hive引擎贼慢但是大数据量执行不报错,spark在大数据量和资源有限的情况下会报错或者数据跑出错乱的结果

desehawk 发表于 2018-6-7 19:00:29

yongjian3311 发表于 2018-6-7 09:35
现在的情况是hive引擎贼慢但是大数据量执行不报错,spark在大数据量和资源有限的情况下会报错或者数据跑出 ...

spark比较吃内存,要求高一些。配置合理,应该没问题的。
页: [1]
查看完整版本: spark sql和hive on spark的区别