[1]参考文章:高彦杰,陈冠诚 Spark SQL : 基于内存的大数据分析引擎《程序员》2014 . 8
AMPLab将大数据分析负载分为三大类型:批量数据处理、交互式查询、实时流处理。而其中很重要的一环便是交互式查询。大数据分析栈中需要满足用户ad-hoc、reporting、iterative等类型的查询需求,也需要提供SQL接口来兼容原有数据库用户的使用习惯,同时也需要SQL能够进行关系模式的重组。完成这些重要的SQL任务的便是 Spark SQL和Shark这两个开源分布式大数据查询引擎,它们可以理解为轻量级Hive SQL在Spark上的实现,业界将该类技术统称为SQL on Hadoop。
在Spark 峰会2014上,Databricks宣布不再支持Shark的开发,全力以赴开发Shark的下一代技术Spark SQL,同时Hive社区也启动了Hive onSpark项目,将Spark作为Hive(除MapReduce和Tez之外的)新执行引擎。根据伯克利的BigData Benchmark测试对比数据,Shark的In Memory 性能可以达到Hive的100倍,即使是On Disk 也能达到10倍的性能提升,是Hive的强有力的替代解决方案。而作为Shark的进化版本的Spark SQL,在AMPLab最新的测试中的性能已经超过Shark。图3-1展示了Spark SQL和Hive on Spark是新的发展方向。
Development……to Spark SQL:Shark开发终止,转向Spark SQL
A new……for Spark:基于Spark的新的SQL查询引擎
Help……to Spark:帮助现有Hive用户迁移到Spark
图3-1 Spark SQL和Hive on Spark是新的发展方向
.1.1为什么使用Spark SQL
由于Shark底层依赖于Hiveÿ