设为首页 加入收藏

TOP

产品经理学大数据——大数据软件框架:Spark(3)之Spark SQL
2019-02-20 01:07:43 】 浏览:71
Tags:产品 理学 数据 软件 框架 Spark SQL
  • SparkSQL是什么?

Spark的存在是为了快于MapReduce的速度进行分布式计算。Spark的设计者很快就了解到,大家还是想用SQL来访问数据,于是SparkSQL就出现了。Spark SQL是基于Spark引擎对HDFS上的数据集或已有的RDD执行SQL查询。有了SparkSQL就能在Spark程序里用SQL语言操作数据了。

  • SparkSQL的前身——Shark

SparkSQL的前身是Shark。对于熟悉RDBMS但又不理解MapReduce的技术人员来说,Hive提供快速上手的工具,它是第一个运行在Hadoop上的SQL工具。Hive基于MapReduce,但是MapReduce的种坚果炒年糕消耗了大量的I/O,影响了运行效率。为了提高在Hadoop上的SQL的效率,一些工具开始产生,其中表现较为突出的是:MapR的Drill、Cloudera的Impala、Shark。其中Shark是伯克利实验室Spark生态环境的组件之一,它修改了内存管理、物理计划、执行三个模块,并使之能运行在Spark引擎上,从而使得SQL查询的速度得到10~100倍的提升。Shark依赖于Hive,比如:Shark采用Hive的语法解析器和查询优化器,这制约了Spark各个组件的相互集成,所以提出了SparkSQL项目。2014年6月1日,Shark项目组宣布停止对Shark的开发,将所有资源放在SparkSQL项目上。SparkSQL作为Spark生态的医院继续发展,而不再受限于Hive,只是兼容Hive。

  • SparkSQL的优点

SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储、Hive兼容性等,重新开发了SparkSQL代码。由于摆脱了对Hive的依赖性,SparkSQL无论在数据兼容、性能优化、组件扩展方面都得到了极大地方便。

  1. 在数据兼容方面,Spark不但兼容Hive,还可以从RDD、parquet文件、JSON文件中获取数据,未来版本甚至支持RDBMS数据以及cassandra等NOSQL数据。
  2. 在性能优化方面,除了采取内存列存储、字节码生成技术等优化技术外,将会引进Cost Model对查询进行动态评估、获取最佳物理计划等等。在组建扩展方面,无论是SQL的语法解析器还是优化器,都可以重新定义并进行扩展。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇大数据学习资源整理 下一篇sparksql 正则匹配总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目