大数据Spark企业级实战版【学习笔记】----Spark Shark& Spark SQL
来源:互联网 发布:滨州行知中学电话 编辑:程序博客网 时间:2024/05/18 05:19
4. Spark Shark
Shark即Hive on Spark,本质上是通过Hive的HQL解析,Shark在Spark1.0.0由于整合度和性能等原因,已被Spark官方团队停止开发。Shark在实现上是把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,Shark获取HDFS上的数据和文件并放到Spark上运算。Shark的最大特性就是快以及与Hive完全兼容。
Shark使用了Hive的API来实现queryParsing和Logic Plan generation,最后的Physical Plan execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF(用户自定义函数)实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。
Hive的架构图如图1-13所示,Shark的架构图如图1-14所示:
对比Shark架构图和Hive架构图可以发现Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行几乎从MR作业替换成了Spark作业;同时还依赖Hive Meatastore和Hive SerDe(用于兼容现有的各种Hive存储格式)。这一策略导致了两个问题,第一是执行几乎优化完全依赖于Hive,不方便添加新的优化策略;二是因为MR是进程级并行,写代码的时候不是很注意线程安全问题,导致Shark不得不使用另外一套独立维护的打了补丁的Hive源码分支。
5. Spark SQL
SparkSQL是被Spark 1.0.0新推出的基于Catalyst引擎的交互式大数据SQL技术,使用SchemaRDD来操作SQL,这个功能和Shark类似,但它比Shark支持更多的查询表达式。最新的版本支持Hive、JSON、Parquet等数据类型,其他数据类型也在计划列表中,如图1-15所示:
- 大数据Spark企业级实战版【学习笔记】----Spark Shark& Spark SQL
- 大数据Spark企业级实战版【学习笔记】---Spark简介
- 大数据Spark企业级实战版【学习笔记】----Spark术语
- 大数据Spark企业级实战版【学习笔记】----Spark Streaming
- 大数据Spark企业级实战版【学习笔记】----Spark Streaming
- 大数据Spark企业级实战版【学习笔记】-----交互式SQL处理框架Spark SQL
- 大数据Spark企业级实战版【学习笔记】----Spark技术生态系统之Spark Core
- 大数据Spark企业级实战版【学习笔记】----Spark R& MLBase
- 大数据Spark企业级实战版【学习笔记】----Spark速度为何如此快
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming 的构架
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming的编程模式
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming案例分析
- 大数据Spark企业级实战版【学习笔记】----Tachyon& BlinkDB&Akka
- 大数据Spark企业级实战版【学习笔记】----RDD:分布式函数式编程
- 大数据Spark企业级实战版【学习笔记】---- GraphX:图像计算框架
- 大数据Spark企业级实战 PDF 下载 和目录
- 04大数据内存计算spark系列贴-SHARK(SQL on spark 0.x)
- 大数据学习36:spark-core 和 spark-sql 学习
- JavaScript封装缓动动画函数
- Linux 下清空文件的命令
- eclipse 安装weblogic插件
- C# 通过DataTable插入大量数据,50万数据只需要3秒
- Python —— 文件处理
- 大数据Spark企业级实战版【学习笔记】----Spark Shark& Spark SQL
- 通过使用Socket来扫描获取手机中可使用的端口
- Application Programming Interfaces -- 1
- hdu 5703 Desert 水题
- 一键读取Txt、Excel等表格配置【源码+原理】
- HDU-6126 Give out candies(最小割)
- lintcode --最小路径和
- POJ 2752 Seek the Name, Seek the Fame (KMP)
- mongoDB 安装和启动