分享

Spark Sql系统入门2:spark sql精简总结

pig2 2017-2-18 16:08:41 发表于 入门帮助 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 17945
本帖最后由 pig2 于 2017-2-20 09:55 编辑

问题导读

1.spark有哪两个分支?

2.spark运行架构是什么?
3.spark包含哪四个模块?



此文是对Spark Sql系统入门1:什么是spark sql及包含哪些组件的精简总结

SparkSQL有两个分支,sqlContext和hiveContext,sqlContext现在只支持SQL语法解析器(SQL-92语法);hiveContext现在支持SQL语法解析器和hivesql语法解析器,默认为hiveSQL语法解析器,用户可以通过配置切换成SQL语法解析器,来运行hiveSQL不支持的语法。
spark运行架构,是以树形结构展现,以rule的方式操作

spark包含四个模块:

sparkSQL1.1总体上由四个模块组成:core、catalyst、hive、hive-Thriftserver:
1.core处理数据的输入输出,从不同的数据源获取数据(RDD、Parquet、json等),将查询结果输出成schemaRDD;
2.catalyst处理查询语句的整个处理过程,包括解析、绑定、优化、物理计划等,说其是优化器,还不如说是查询引擎;
3.hive对hive数据的处理
4.hive-ThriftServer提供CLI和JDBC/ODBC接口

catalyst包含组件:

1.sqlParse,完成sql语句的语法解析功能,目前只提供了一个简单的sql解析器;
2. Analyzer,主要完成绑定工作,将不同来源的Unresolved LogicalPlan和数据元数据(如hive metastore、Schema catalog)进行绑定,生成resolved LogicalPlan;
3. optimizer对resolved LogicalPlan进行优化,生成optimized LogicalPlan;
4. Planner将LogicalPlan转换成PhysicalPlan;
5. CostModel,主要根据过去的性能统计数据,选择最佳的物理执行计划
这些组件的基本实现方法:
6. 先将sql语句通过解析生成Tree,然后在不同阶段使用不同的Rule应用到Tree上,通过转换完成各个组件的功能。
7. Analyzer使用Analysis Rules,配合数据元数据(如hive metastore、Schema catalog),完善Unresolved LogicalPlan的属性而转换成resolved LogicalPlan;
8. optimizer使用Optimization Rules,对resolved LogicalPlan进行合并、列裁剪、过滤器下推等优化作业而转换成optimized LogicalPlan;
9. Planner使用Planning Strategies,对optimized LogicalPlan进行转换,转换成可以执行的物理计划

spark sql查看运行计划
hive/console官网没有提供,需要下载spark源码,hive源码及配置环境变量编译。然后运行hive/console.这个作用,可以查看sql的运行计划,schema,转换rdd等。
查看运行schema
[mw_shl_code=bash,true]query.printSchema
[/mw_shl_code]

sql的运行计划,比如查看整个运行计划
[mw_shl_code=bash,true]query.queryExecution
[/mw_shl_code]
查看其中的一个计划,则在后面加上其相关内容,比如analyzed LogicalPlan
[mw_shl_code=bash,true]query.queryExecution.analyzed[/mw_shl_code]
查看优化后的LogicalPlan
则是
[mw_shl_code=bash,true]query.queryExecution.optimizedPlan[/mw_shl_code]

更多参考
Spark Sql系统入门1:什么是spark sql及包含哪些组件
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20910

spark sql运行计划精简
http://www.aboutyun.com/forum.php?mod=viewthread&tid=21032

sparkSQL1.1入门之四:深入了解sparkSQL运行计划
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12174


sparkSQL1.1入门之三:sparkSQL组件之解析(sqlContext的关键的概念和组件)
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12173


转载主公来自about云(www.aboutyun.com



本帖被以下淘专辑推荐:

已有(7)人评论

跳转到指定楼层
美丽天空 发表于 2017-2-19 12:35:22
感谢楼主分享
回复

使用道具 举报

ggggying12 发表于 2017-2-22 21:05:00
大神好人啊,看了你很多帖子
回复

使用道具 举报

a530491093 发表于 2017-9-7 16:27:39
感谢分享了!
回复

使用道具 举报

hadoopoumm 发表于 2018-10-17 14:57:34
感谢楼主分享
回复

使用道具 举报

神罗天征 发表于 2019-3-22 10:28:41
不错的帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条