[发明专利]一种提升Spark运行效能的方法及装置在审
申请号: | 201610482075.7 | 申请日: | 2016-06-27 |
公开(公告)号: | CN107544844A | 公开(公告)日: | 2018-01-05 |
发明(设计)人: | 肖丽华;王跃;刘晏 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京元本知识产权代理事务所11308 | 代理人: | 秦力军 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提升 spark 运行 效能 方法 装置 | ||
技术领域
本发明涉及大数据分析及处理领域,特别涉及一种提升Spark运行效能的方法及装置。
背景技术
随着信息化的发展,企业要处理的数据爆炸式的增长,数据量都达到了太字节(万亿字节,TB)级、拍字节(千万亿字节,PB)级。为了支撑这么大规模数据的分析和处理,各类大数据框架、工具和技术应运而生,Spark便是其中之一。
Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,其通过在数据处理过程中采用成本更低的混洗(Shuffle)方式,将“映射-规约”模型(Map Reduce)提升到一个更高的层次,并且利用内存数据存储和接近实时的处理能力,使其性能比其他大数据处理技术要快很多倍。Spark SQL是Spark的一个组件,用来支持结构化查询语言(Structured Query Language,SQL)标准,因其易用性,高性能,并借助了传统SQL的用户惯性及生态系统的力量,受到用户广泛青睐。
Spark SQL的调度核心是Catalyst,Catalyst是Spark SQL中的函数式关系查询优化框架,在将SQL语言翻译成最终执行计划的过程中会进行查询优化。另外Spark SQL在存储上可以通过高速缓冲存储表(cache table)将数据存储转换为列式存储,同时将数据加载到内存进行缓存,从而大大减少内存缓存数据量、网络传输数据量和输入/输出(I/O)开销。同时列式存储是数据类型相同的数据连续存储,能够利用序列化和压缩减少内存空间的占用。
虽然Spark SQL有强大的优化器,且通过cache table支持列式存储、内存缓存和存储压缩,但这些优化都集中在Spark SQL执行过程,即任务提交到Spark之后,如果应用不能根据实际情况充分利用Spark SQL的优势,合理组织任务的提交,就不可避免会出现一些问题,抵消Spark SQL自身优势带来的效能提升红利:
1.系统拥有充足的内存资源和内核(CPU)资源,但不能被充分使用,如任务串行提交或并行度不够。
2.高速缓冲存储表缓存与释放的时机把握不准。
缓存过早或释放过晚,将导致系统资源(尤其是内存)不能及时释放;cache table主要用于缓存中间表结果,它的特点是数据量少且数据被后续计算(SQL)频繁使用。如果中间表结果使用完毕,应立即使用uncache命令释放缓存空间,以便缓存其它数据。
3.该缓存的数据没缓存,不该缓存的数据却缓存了,或者只需要缓存部分列的数据被全表缓存。
4.缓存后的数据得不到充分使用,导致对同样的数据反复缓存。
5.分布式计算系统的精粹在于移动计算而非移动数据,但是在实际的计算过程中,总存在着移动数据的情况,除非是在集群的所有节点上都保存数据的副本。移动数据,将数据从一个节点移动到另一个节点进行计算,不但消耗了网络IO,也消耗了磁盘IO,降低了整个计算的效率。
发明内容
本发明实施例提供的技术方案解决的技术问题是如何将Spark运行效能提升。
根据本发明实施例提供的一种提升Spark运行效能的方法,包括:
对系统中需要高速缓存cache的表进行确定;
对以所确定的需要cache的表作为输入或输出的cache任务进行识别;
对所识别的cache任务进行分组,并为相应的cache任务组创建处理进程;
根据每个处理进程的当前状态和Spark集群资源的实时使用情况,对待提交的cache任务进行组合,并发送至Spark集群处理。
优选地,所述对系统中需要cache的表进行确定的步骤包括:
根据表的出度、表单次cache的记录数、表中多个cache任务间的就绪时间差,确定需要cache的表;和/或
将自定义的cache类型的表确定为需要cache的表。
优选地,所述对所识别的cache任务进行分组的步骤包括:
以所识别的cache任务为对象,建立关于cache任务的有向无环图;
根据所述有向无环图,将通过需要cache的表相互关联的cache任务分配到同一cache任务组。
优选地,所述为相应的cache任务组创建处理进程的步骤包括:
若对所识别的cache任务进行分组的处理是第一次分组处理,则对本次分组处理得到的每一个cache任务组创建相应的处理进程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610482075.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能蒸具
- 下一篇:GPU资源调度方法及装置