Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
简单地说,Shark 的下一代技术 是Spark SQL。
由于 Shark 底层依赖于 Hive,这个架构的优势是对传统 Hive 用户可以将 Shark 无缝集成进现有系统运行查询负载。
但是也看到一些问题:一方面,随着版本升级,查询优化器依赖于 Hive,不方便添加新的优化策略,需要进行另一套系统的学习和二次开发,学习成本很高。
另一方面, MapReduce是进程级并行,例如: Hive 在不同的进程空间会使用一些静态变量,当在同一进程空间进行多线程并行执行,多线程同时写同名称的静态变量会产生一致性问题,
所以Shark 需要使用另外一套独立维护的 Hive 源码分支。而为了解决这个问题 AMPLab 和Databricks 利用 Catalyst 开发了 Spark SQL。
Spark 的全栈解决方案为用户提供了多样的数据分析框架,机器学习、图计算、流计算如火如荼的发展和流行吸引了大批的学习者,为什么人们今天还是要重视在大数据环境下使用 SQL 呢?笔者认为主要有以下几点原因:
1)易用性与用户惯性。在过去的很多年中,有大批的程序员的工作是围绕着 数据库 + 应用 的架构来做的,因为 SQL 的易用性提升了应用的开发效率。程序员已经习惯了业务逻辑代码调用 SQL 的模式去写程序,惯性的力量是强大的,如果还能用原有的方式解决现有的大数据问题,何乐而不为呢?提供 SQL 和 JDBC 的支持会让传统用户像以前一样地书写程序,大大减少迁移成本。
2)生态系统的力量。很多系统软件性能好,但是未取得成功和没落,很大程度上因为生态系统问题。传统的 SQL 在 JDBC、 ODBC、 SQL 的各种标准下形成了一整套成熟的生态系统,很多应用组件和工具可以迁移使用,像一些可视化的工具、数据分析工具等,原有企业的 IT 工具可以无缝过渡。
3)数据解耦, Spark SQL 正在扩展支持多种持久化层,用户可以使用原有的持久化层存储数据,但是也可以体验和迁移到 Spark SQL 提供的数据分析环境下进行 BigData 的分析。
Spark SQL概念学习系列之为什么使用 Spark SQL?(二)的更多相关文章
- Spark SQL概念学习系列之如何使用 Spark SQL(六)
val sqlContext = new org.apache.spark.sql.SQLContext(sc) // 在这里引入 sqlContext 下所有的方法就可以直接用 sql 方法进行查询 ...
- Spark RDD概念学习系列之RDD的缺点(二)
RDD的缺点? RDD是Spark最基本也是最根本的数据抽象,它具备像MapReduce等数据流模型的容错性,并且允许开发人员在大型集群上执行基于内存的计算. 为了有效地实现容错,(详细见ht ...
- Spark SQL概念学习系列之Spark SQL的简介(一)
Spark SQL提供在大数据上的SQL查询功能,类似于Shark在整个生态系统的角色,它们可以统称为SQL on Spark. 之前,Shark的查询编译和优化器依赖于Hive,使得Shark不得不 ...
- Spark SQL概念学习系列之Spark SQL 架构分析(四)
Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...
- Spark SQL概念学习系列之SQL on Spark的简介(三)
AMPLab 将大数据分析负载分为三大类型:批量数据处理.交互式查询.实时流处理.而其中很重要的一环便是交互式查询. 大数据分析栈中需要满足用户 ad-hoc.reporting. iterative ...
- Spark SQL概念学习系列之分布式SQL引擎
不多说,直接上干货! parkSQL作为分布式查询引擎:两种方式 除了在Spark程序里使用Spark SQL,我们也可以把Spark SQL当作一个分布式查询引擎来使用,有以下两种使用方式: 1.T ...
- Spark SQL概念学习系列之Spark SQL基本原理
Spark SQL基本原理 1.Spark SQL模块划分 2.Spark SQL架构--catalyst设计图 3.Spark SQL运行架构 4.Hive兼容性 1.Spark SQL模块划分 S ...
- Spark RDD概念学习系列之RDD的checkpoint(九)
RDD的检查点 首先,要清楚.为什么spark要引入检查点机制?引入RDD的检查点? 答:如果缓存丢失了,则需要重新计算.如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容 ...
- Spark RDD概念学习系列之Spark的数据存储(十二)
Spark数据存储的核心是弹性分布式数据集(RDD). RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的. 逻辑上RDD的每个分区叫一个Partition. 在Spar ...
随机推荐
- jpa懒加载异常
1.项目背景概述 事情是这样子的,使用了spring data jpa的项目jeesite jeesite的实体中使用了懒加载模式. 并且一个实体类中还不止一个属性设置了懒加载模式. 项目本身已经存在 ...
- linux 命令学习大全
转载 http://blog.csdn.net/xiaoguaihai/article/details/8705992/
- HDU 1677
Nested Dolls Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 终极解决方案:windows10开机黑屏,死机
windows10开机黑屏,死机一般情况都是由于双显卡中的独立显卡驱动造成的! 那么试着升级一下你的BIOS吧!一定要在官网下载你对应的BIOS驱动,然后双击安装,这个时候就别再动机子了,让他自己刷新 ...
- Ubuntu解决Sublime Text 2安装GBK Encoding Support插件仍然乱码
Ubuntu 12.04 32位下,为Sublime Text 2安装Package Control: 1. 用Ctrl+~打开控制台,输入 import urllib2,os; pf='Packag ...
- cocos2d-x中的Jni使用(C++与Andriod方法互调)
作者:何卫 转载请注明,原文链接:http://www.cnblogs.com/hewei2012/p/3376616.html 前提条件: 1.操作的游戏工程和cocos2d_x游戏引擎是一个目录的 ...
- I.MX6 Goodix GT9xx touchscreen driver porting
/************************************************************************ * I.MX6 Goodix GT9xx touch ...
- zollei的心动噪声探索性识别
<Exploratory Identification of Cardiac Noise in fMRI Images> 这个方法,最特别的地方在于, 是从静息态的大脑数据中,抽取心动结构 ...
- <摘录>TS,PS,PES包格式
PES是打包过的ES,已经插入PTS和DTS,一般是一个pes包为一帧图像 PES包格式: PES再打包成TS流或PS流,往往一个PES会分存到多个ts包中, start_code: 0x00 00 ...
- 2014-LAMP兄弟连视频下载地址汇总
linux 兄弟连2014年新版Linux视频教程百度网盘下载 http://pan.baidu.com/s/1kTsjVfx http://pan.baidu.com/s/1sjJf2OX 兄弟连2 ...