产品经理学大数据——大数据软件框架:Spark(3)之Spark SQL

  • Spark SQL是什么?

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

  • Spark SQL的前身——Shark

Spark SQL的前身是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各个组件的相互集成,所以提出了Spark SQL项目。2014年6月1日,Shark项目组宣布停止对Shark的开发,将所有资源放在Spark SQL项目上。Spark SQL作为Spark生态的医院继续发展,而不再受限于Hive,只是兼容Hive。

  • Spark SQL的优点

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

  1. 在数据兼容方面,Spark不但兼容Hive,还可以从RDD、parquet文件、JSON文件中获取数据,未来版本甚至支持RDBMS数据以及cassandra等NOSQL数据。
  2. 在性能优化方面,除了采取内存列存储、字节码生成技术等优化技术外,将会引进Cost Model对查询进行动态评估、获取最佳物理计划等等。在组建扩展方面,无论是SQL的语法解析器还是优化器,都可以重新定义并进行扩展。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值