Spark SQL结构化数据处理及性能优化

来源 :重庆邮电大学 | 被引量 : 0次 | 上传用户:li_heping1986
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来Spark内存计算框架快速崛起,数据处理速度得到极大的提高,但是其速度上限却受限于Spark内存规模。当数据量小于或接近内存容量时Spark性能最好,反之则性能较差。因此Spark SQL在处理以4G行业卡数据为代表的通信大数据时暴露出了诸多问题,如读写速度和查询速度缓慢、系统资源分配不均或不足、大表Join效率低等。本文从Spark SQL的数据组织方式、Spark资源管理机制和Join算法三个方面处理结构化数据并进行相关的性能优化。首先提出了改进的数据组织框架以提高Spark SQL的读写和查询速度,其次建立了资源监控模型合理的分配和使用资源,最后基于改进的数据组织框架和监控模型改进了大表Join算法。主要工作如下:(1)本文通过分析和对比Spark SQL和Hbase的数据组织方式,提出了一种改进的数据组织框架。该框架首先改进了Parquet文件格式的读写接口,其次利用Hbase+Phoenix构建了二级索引,大幅提升了4G行业卡数据的读写和查询速度。(2)本文进一步研究了Spark的内存模型和资源使用情况,通过性能监控获取集群底层各项参数,建立了内存监控模型对资源使用情况进行分级和预警。最后将预警结果通过观察者模型反馈给订阅者,订阅模块就可以根据它的反馈来动态调整数据流量。(3)本文基于改进的数据组织框架和监控模型对大表关联算法进行优化,提出了一种基于内存监控和分批处理的Join算法。该算法通过监控模型动态地控制数据流量和Join批次,并通过改进的数据组织方式加快数据读写和查询速度。实验表明该算法从一定程度上缓解了内存不足的问题,也降低了数据倾斜导致的负载不均衡影响,总体运行时间优于默认的Join算法。综上所述,Spark SQL处理结构化数据的性能受数据组织方式和内存模型的影响,具体表现为Join效率低下。本文首先改进了数据组织框架,然后建立了内存监控模型,最后优化了Join算法,平均处理时间缩短了31.49%。
其他文献
研究背景同种或异种间囊胚互补再造器官已在啮齿类和大型哺乳类动物体内得到验证,因此利用囊胚互补在适当的宿主体内再造人源化肾脏器官具有可行性。通过囊胚互补再造人源化