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极客挑战赛季军方案_天池技术圈-阿里云天池

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

特别的时钟特别的倒计时

念念不忘的歌曲&#xff1a;Thats Why You Go Away <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

测算sample gpt

测算代码 import pandas as pd import matplotlib.pyplot as pltlosspd.read_pickle("loss_8.pkl") plt.plot(loss) losspd.read_pickle("loss_16.pkl") plt.plot(loss) losspd.read_pickle("loss_4_8.pkl") plt.plot(loss) losspd.read_pickle(…

进程的概念(2)

进程优先级 1.什么的优先级 概念&#xff1a;指定进程获取某种资源&#xff08;CPU&#xff09;的先后顺序 本质&#xff1a;优先级的本质是优先级数字的大小&#xff0c;Linux中优先级数字越小&#xff0c;优先级越高 task_struct 进程控制快-> struct -> 内部字段 -&g…

Modbus转Profinet网关连接打印设备与PLC通讯

Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口&#xff0c;使得不同设备之间可以顺利进行通信。当我们需要连接打印设备与PLC进行通讯时&#xff0c;Modbus转…

pycharm 安装“通义灵码“并测试

过程&#xff1a;“File>setting>Plugins” 提示&#xff1a; 翻译之后&#xff1a; 点击"接受"之后&#xff0c;提示一下图片&#xff0c;点击ok 安装完成&#xff1a; 安装完"通义灵码"之后&#xff0c;需要登陆&#xff0c;登陆后测试 参考…

vue实现滚动条联动(一个滚动条控制两个或多个)

两个表格需要进行比对&#xff0c;两个表格是互相独立的&#xff0c;如果滚动条不能同步&#xff0c;用户就要操作两个两次&#xff0c;体验不是太好&#xff0c;如下图&#xff1a; 因此想使两个滚动条同步&#xff0c;思路如下&#xff1a; 给两个表格定义ref&#xff08;便…

uniapp微信小程序开发踩坑日记:由于图表数据渲染不出来,我第一次在项目中用watch函数监听数据变化

一、发现问题 在我们团队自己开发的微信小程序中&#xff0c;引入了Echarts图表库 然后突然有一天&#xff0c;后端队友反应图表渲染有问题。后面我去试了一下&#xff0c;确实20次里面必有一次数据渲染不出来 断定代码没问题&#xff0c;于是我们将其鉴定为玄学 二、问题原因…

VS2022 配置OpenCV开发环境详细教程

OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;由Intel开发并首先发布于1999年。OpenCV被广泛用于实时图像处理、视频分析、物体检测、面部识别、机器人视觉以及许多其他领域。它支持C、Pytho…

代码+视频,R语言绘制生存分析模型的时间依赖(相关)性roc曲线和时间依赖(相关)性cindex曲线

ROC曲线分析是用于评估一个因素预测能力的手段&#xff0c;是可以用于连续型变量分组的方法。在生存分析中&#xff0c;疾病状态和因素取值均会随时间发生变化。而标准的ROC曲线分析将个体的疾病状态和因素取值视作固定值&#xff0c;未将时间因素考虑在分析之中。在这种情况下…

STM32入门_江协科技_1~2_OB记录的自学笔记_STM32简介

1.综述 1.1. 课程简介 手打代码是加入了实操&#xff0c;增加学习效果&#xff1b; STM最小系统板面包板的硬件平台&#xff1b; 配套0.96寸的显示屏&#xff0c;便于调试&#xff1b; 因为使用面板板&#xff0c;所以如果程序现象不出来也有可能是硬件连接的问题&#xff1b; …

Linux 小技巧1

目录 一. 统计文件的总行数二. 获取从第二行开始的内容三. 合并两个文件为一个文件四. 统计指定列唯一值的数量五. 列出文件的绝对路径六. 获取除了空白行和注释之外的部分 一. 统计文件的总行数 ⏹非压缩文件 统计当前文件夹下csv文件的行数 wc -l ./*.csv统计指定文件夹下…

甘特图是什么?利用甘特图来优化项目管理流程

在现代项目管理中,图表是一种强大而直观的工具,可以帮助项目经理和团队成员清晰地了解并掌控整个项目进程。其中,甘特图是最常用和最有效的图表之一。 甘特图是一种条形图,可以用来直观地展示项目中各个任务的进度、持续时间和相互关系。它由一个横轴和一个纵轴组成。横轴代表时…

基于单片机的多功能电子万年历系统

摘要:该题目要求学生综合运用单片机原理、低频电子线路、数字电路与逻辑设计等相关知识,设计完成多功能电子万年历系统。通过完成设计任务,使学生掌握单片机设计开发的基本流程,增强学生动手实践能力,培养学生分析和解决实际问题的能力,为后续课程的学习和工作打下良好基础。 关…

【c++】----STL简介string

目录 1. 什么是STL 2. STL的版本 3. STL的六大组件 4.STL的缺陷 5.string类 1. 为什么学习string类&#xff1f; 6.string类的常用接口说明&#xff08;下面我们只讲解最常用的接口&#xff09; 1.string 常见构造 2.string类的遍历 iterator 迭代器遍历 &#xff08;…

初识BootStrap

目录 前言: 1.Bootstrap的特点包括&#xff1a; 1.1响应式设计&#xff1a; 1.2组件丰富&#xff1a; 1.3易于定制&#xff1a; 1.4兼容性良好&#xff1a; 1.5强大的社区支持&#xff1a; 1.6一致的样式和布局&#xff1a; 1.7 插件和扩展性 2.初识Ajax: 2.1同步请求…

STM32应用开发教程进阶--Wi-Fi通信(ESP8266模块:STA、AP、STA+AP)

实现目标 1、熟悉Wi-F、ESP8266模块 2、掌握ESP8266模块共3种工作模式&#xff1a;STA、AP、STAAP的配置 3、具体实现目标&#xff1a;&#xff08;1&#xff09;AT固件烧录&#xff1b;&#xff08;2&#xff09;ESP8266模块STA、AP、STAAP的配置 一、Wi-Fi概述 1、Wi-Fi定…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

【实时数仓架构】方法论(未完)

笔者不是专业的实时数仓架构&#xff0c;这是笔者从其他人经验和网上资料整理而来&#xff0c;仅供参考。写此文章意义&#xff0c;加深对实时数仓理解。 实时数仓背景和场景 一、实时数仓架构技术演进 1.1、四种架构演进 1&#xff09;离线大数据架构 一种批处理离线数据分…

电脑开机后卡在开机LOGO画面如何排查处理

当电脑开机后长时间停滞在开机LOGO画面,无法继续进入操作系统,这一现象常令用户困扰不已。本文将深入探讨导致此类问题的多种可能原因,并提供相应的解决方法,帮助你有效地诊断和排除故障。 硬件故障或接触不良 1. 硬盘问题:硬盘是系统启动的关键组件,其故障或数据线接触…

Django项目之电商购物商城 -- 校验用户输入密码是否合法

Django项目之电商购物商城 – 校验用户输入密码是否合法 需要开发文档和前端资料的可私聊 一. 创建用户逻辑操作 1. 创建用户app – users python manage.py startapp users2.注册app users.apps.UsersConfig,3. 创建视图 from django.shortcuts import render from djan…