赛题解析 | E-MapReduce 极客挑战赛

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 首届 E-MapReduce 极客挑战赛已开启,奖金高达26万,欢迎大家踊跃报名!本文主要讲解自测工具的使用以及代码的提交和评测,帮助选手更高效的解题。

首届 E-MapReduce 极客挑战赛正在火热进行中,快来报名参加吧!

报名链接:(报名时间即日起至 09/21):https://tianchi.aliyun.com/competition/entrance/531912/introduction


E-MapReduce 极客挑战赛钉钉交流群:35434038


本文主要讲解自测工具的使用以及代码的提交和评测,帮助选手更高效的解题。


直播回放链接:

https://developer.aliyun.com/live/247179


一、初赛赛题说明

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


二、测评工具使用说明

参考文档:https://github.com/tianchi-emr/spark-sql-perf/blob/tianchi/README.md

Benchmark工具:https://github.com/tianchi-emr/spark-sql-perf

将代码 clone 到本地

lALPDgfLSKJNZCvNAVzNBKQ_1188_348.png

tpcds-kit 工具编译

进入 resource/bin目录,运行 compile.sh脚本进行编译步骤,该编译脚本目前仅支持在LINUX和MACOS系统上进行编译

cd resource/bin
bash compile.sh

生成数据集

进入resource/bin目录,修改params.conf配置文件,指定如下配置项:

  • SCALE_FACTOR:生成数据集规模,本地测试可选择1
  • ITERATIONS:执行轮数
  • DATA_LOCATION:生成数据集的存储路径,需要预留有足够的存储空间
  • RESULT_LOCATION:结果输出路径
  • DATA_GEN_SPARK_MASTER:生成数据集运行的 spark 程序的 master,本地测试需要填写 local[N],其中 N 为所使用的 CPU 核心数

   image.png

配置完成后,运行datagen.sh脚本进行数据生成(执行过程中 dsdgen 工具输出的 stderr日 志会被 sbt 判定为 [error] 日志,可以忽略)。

cd resource/bin
vim params.confbash datagen.sh

执行脚本时,以防误删会先提示确认数据生成路径,确认无误输入" Y "继续执行。

image.png

执行成功后可查看下文件夹大小

image.png

运行 TPC-DS Benchmark 测试

进入resource/bin目录,修改params.conf配置文件,指定如下配置项:

  • SCALE_FACTOR:生成数据集规模,与生成数据集时配置内容相同,生成数据集配置后无需修改
  • ITERATIONS:Benchmark 执行轮数
  • DATA_LOCATION:数据集存储目录,与生成数据集时配置内容相同,生成数据集配置后无需修改
  • SPARK_DIR:选手优化后 Spark 安装目录

   (选手对 spark 代码进行打包,指定路径)

  • TPCDS_RUN_SPARK_MASTER:Benchmark 运行的 spark 程序的 master,本地测试需要填写 local[N],其中 N 为所使用的 CPU 核心数

   image.png

配置完成后,运行run_tpcds.sh脚本执行测试。

cd resource/bin
vim params.confbash run_tpcds.sh

运行完成后,选手可查看运行时间判断代码优化效果。

image.png

Benchmark 默认会执行所有生成的 query,可以修改src/main/notebooks/tpcds_run_emr.scala脚本中的 query_filter 变量进行 query 指定。

image.png

val query_filter = Seq()// Seq()== all queries
val query_filter = Seq("q1-v2.4","q2-v2.4")// run subset of queries

如果希望排除某些 query 不运行,可以将exclude变量设置为 true。

val exclude =trueval query_filter = Seq("q77-v2.4")// all queries except q77

此外,如果有参数的优化,可以在文件中进行修改。例如修改 spark.conf,把参数设置为优化的参数,也能对优化的参数进行性能测试。

image.png

三、提交评测说明

选手基于比赛提供的 Spark 代码进行优化,并将调优的 Spark 参数写入到 Spark 代码 conf/spark-defaults.conf 文件中,将优化后的 Spark 代码打包后提交至天池平台。平台会将 Spark 包自动部署到比赛提供的阿里云 EMR 集群,并使用 Benchmark 工具加载选手调优的 Spark 参数进行测试。打包需要确认 conf/spark-defaults.conf 文件存在,打包命令如下:

mvn -Phive,yarn -Phadoop-3.2-Dhadoop.version=3.2.1 clean -DskipTests
./dev/make-distribution.sh--tgz -B -e -Phadoop-3.2 -Phive -Pyarn    

在目录下会生成一个 tgz 文件,包含优化的 spark 代码编译后的架包以及优化的 spark-defaults.conf 的配置参数等

image.png

为确保优化参数在最终测评时生效,需确保在 conf 目录下,放入 spark-defaults.conf  文件并保证文件名正确。

image.png

打包完成后到天池平台进行上传评测。

提交地址:https://tianchi.aliyun.com/competition/entrance/531912/submission/827

image.png

image.png

评测需要一定时间,评测程序执行完成后,可在我的成绩中查看结果。


四 总结

本文结合首届 E-MapReduce 极客挑战赛的赛题说明,通过实操演示讲解了自测工具的使用以及代码的提交和评测。希望对参加比赛的同学们能有所帮助,也欢迎更多的技术同学报名参加我们的挑战赛,一起探讨性能极限。


对比赛感兴趣或者参赛过程中有疑问的小伙伴,欢迎扫描下方二维码加入交流群一起来交流讨论~

lADPD2sQwP55_5LNA97NAu4_750_990.jpg

相关文章
|
分布式计算 Hadoop 大数据
Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)
Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)
183 0
|
分布式计算 Hadoop 大数据
Hadoop学习:深入解析MapReduce的大数据魔力(三)
Hadoop学习:深入解析MapReduce的大数据魔力(三)
112 0
|
缓存 安全 网络安全
2021年中职“网络安全“江西省赛题—A模块解析
2021年中职“网络安全“江西省赛题—A模块解析
391 1
2021年中职“网络安全“江西省赛题—A模块解析
|
存储 分布式计算 Hadoop
Hadoop学习:深入解析MapReduce的大数据魔力(二)
Hadoop学习:深入解析MapReduce的大数据魔力(二)
158 0
|
7月前
|
分布式计算 监控 Hadoop
Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
313 0
|
数据采集 分布式计算 搜索推荐
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
|
网络协议 测试技术 网络安全
2022年中职“网络安全“江西省赛题解析—B-1:Windows操作系统深入
2022年中职“网络安全“江西省赛题解析—B-1:Windows操作系统深入
167 1
|
存储 分布式计算 Hadoop
Hadoop学习:深入解析MapReduce的大数据魔力(一)
Hadoop学习:深入解析MapReduce的大数据魔力(一)
177 0
|
弹性计算 资源调度 Serverless
课时1:Serverless 赛题设置和解题思路解析
课时1:Serverless 赛题设置和解题思路解析
|
人工智能 弹性计算 Kubernetes
2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题
2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题

推荐镜像

更多
下一篇
DataWorks