E-MapReduce极客挑战赛季军方案

前一段时间我参加了E-MapReduce极客挑战赛,很幸运的获得了季军。在这把我的比赛攻略给大家分享一下,希望可以抛砖引玉。

赛题分析与理解

赛题背景:

大数据时代,上云已成为越来越多终端客户大数据方案的落地选择,阿里云 EMR 以其易用性高,性能强,弹性大的特点,成为了广大用户的首选。英特尔® 傲腾™持久内存是兼具出色的内存与存储性能的解决方案,将高性价比的大容量内存与对数据持久性的支持巧妙地结合在一起。本题结合阿里云 EMR和英特尔® 傲腾™数据中心级持久内存(后文简称PMEM)以及Intel OAP(Optimized Analytic Package for Spark)软件包,优化软件系统和利用硬件的特征,追求TPC-DS测试集的最优性能。

赛题描述:

EMR 团队提供用于比赛的Spark 3.1.2代码分支,选手进行 Spark 代码优化和参数调优以提升SparkSQL执行效率,同时组委会提供性能测评工具供选手自行测试(单机环境或EMR集群环境)。在比赛阶段,选手将最终优化后的Spark代码和调优参数打包,通过天池平台提交,天池平台会使用相同的性能测评工具,进行评测和排名。

EMR软件版本:EMR-5.2.1
Master节点:ecs.g6e.4xlarge 1台
Worker节点:ecs.re6p.4xlarge 3台,单机系统盘100GB ESSD 1块,数据盘200GB ESSD 4块,持久内存252 GiB。

赛题要求:

1、比赛使用的测试数据集大小为1T,1 TB TPC-DS数据集已经提前生成,数据格式为 Parquet,生成数据集的随机因子组委会不公开。
2、比赛使用SQL query为TPC-DS工具生成的99个SQL,组委会从中选择30条SQL进行评测,具体选取的SQL组委会不公开。
3、选手可以进行Spark参数优化,SQL优化,执行Plan算子优化,引擎优化,调度优化,数据传输优化等,以便让SQL作业执行更快速。

关键技术:

用到的关键技术包括:E-MapReduce,Spark,Intel Optane (PMEM)及Intel OAP。如下图所示:

enter image description here

赛题分析

通过对赛题分析可以发现,主要可以通过参数优化、硬件优化及代码优化来实现对Spark效率的提升。如下图所示:

enter image description here

整体方案与优化

整体方案

考虑到初赛和复赛的Worker的配置差异主要是复赛的Worker有傲腾持久内存,所以初赛以参数优化为主,复赛以硬件优化及代码优化为主。

enter image description here

利用Optane

复赛开始使用Optane,通过Optane提升比赛成绩
 

enter image description here


通过参数优化及应用Optane,最后成绩760左右。

经验与感想

IT系统调优是一个复杂的工程,需要对软件系统、硬件平台、技术体系进行深入的了解。查找资料,借鉴前人经验,可以大大的加快调优的进度。根据软硬件情况,合理的规划,可以做到事半功倍。

通过这次比赛对Spark、硬件加速、湖仓一体架构等有了更深入的了解。

感谢主办方这么一个机会,让我可以参与这么有意思的比赛。感谢各位导师对我问题的耐心解答和帮助,辛苦大家了,谢谢。

查看更多内容,欢迎访问天池技术圈官方地址:E-MapReduce极客挑战赛季军方案_天池技术圈-阿里云天池

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 19:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 19:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 19:42:02       82 阅读
  4. Python语言-面向对象

    2024-04-25 19:42:02       91 阅读

热门阅读

  1. el-table 表格自带全选按钮隐藏

    2024-04-25 19:42:02       25 阅读
  2. flask + celery + redis + flower

    2024-04-25 19:42:02       33 阅读
  3. C 语言实例 - 字符转 ASCII 码

    2024-04-25 19:42:02       32 阅读
  4. HashMap 和 HashTable的异同

    2024-04-25 19:42:02       32 阅读
  5. Linux c++ 中文字符转十六进制 UTF-8 编码

    2024-04-25 19:42:02       23 阅读
  6. 【React】生命周期

    2024-04-25 19:42:02       31 阅读
  7. 【vue】axios封装拦截

    2024-04-25 19:42:02       27 阅读
  8. Electron vue 进程间消息通行

    2024-04-25 19:42:02       34 阅读