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的引擎。
这是二者最大的区别。
继续补充:
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
谢谢分享,正在学习这方面的知识 现在的情况是hive引擎贼慢但是大数据量执行不报错,spark在大数据量和资源有限的情况下会报错或者数据跑出错乱的结果 yongjian3311 发表于 2018-6-7 09:35
现在的情况是hive引擎贼慢但是大数据量执行不报错,spark在大数据量和资源有限的情况下会报错或者数据跑出 ...
spark比较吃内存,要求高一些。配置合理,应该没问题的。
页:
[1]