阿里云E-MapReduce集群不同计算引擎sleep task使用笔记

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 需求:日常在E-MapReduce集群中进行相关测试,验证一些切换或变更是否会影响业务的运行导致任务failed。所以需要在测试集群中运行指定资源数(vcore及memory)或者指定运行时间的任务。目前用到MapReduce和spark任务两种,其余的持续更新补充中……

1. 概述

需求:日常在E-MapReduce集群中进行相关测试,验证一些切换或变更是否会影响业务的运行导致任务failed。所以需要在测试集群中运行指定资源数(vcore及memory)或者指定运行时间的任务。

目前用到MapReduce和spark任务两种,其余的持续更新补充中……

2. mapreduce

官方提供的test jar,可以通过如下命令找到该测试jar包

# 找到环境变量中的hadoop homeenv |grep -i hadoop 
# 找到测试jarcd$HADOOP_HOME/share/hadoop/mapreduce/
# pwd# /opt/apps/HADOOP-COMMON/hadoop-common-current/share/hadoop/mapreduce

image.png

2.1. 用法

# 查看jar包中的类 可以看到有现成的sleep可以使用hadoop jar ./hadoop-mapreduce-client-jobclient-2.8.5-tests.jar

image.png

# 查看sleep类的用法# hadoop jar ./hadoop-mapreduce-client-jobclient-2.8.5-tests.jar <类名>hadoop jar ./hadoop-mapreduce-client-jobclient-2.8.5-tests.jar sleep# 可以看到如下图所示,在-m -r 指定mapper和reducer的数量# -mt 和 -rt指定在map 和reduce过程中sleep的时长,单位为msec

image.png

hadoop jar hadoop-mapreduce-client-jobclient-2.8.5-tests.jar sleep-m10-r10-mt1000-rt300000

3. spark

spark home下暂时没找到可以直接配参数调用的脚本,用来控制资源+执行时长的类似sleep测试jar包或代码,所以以apache spark中样例代码PI的计算为基础,做了下改动。

3.1. 用法

以pyspark api为基础,使用spark-submit起任务,脚本中的`--sleep`参数可以用纸在map task时sleep的时长。

spark-submit \
--deploy-mode cluster \
--master yarn \
--executor-memory 5g \
--conf spark.executor.instances=6 \
--conf spark.dynamicAllocation.enabled=false \
  ./pi_sleep.py \
--sleep30

image.png

3.2. 样例代码

importtimefromrandomimportrandomfromoperatorimportaddfrompyspark.sqlimportSparkSessionimportargparseif__name__=="__main__":
"""        Usage:         spark-submit \            --deploy-mode cluster \            --master yarn \            --conf spark.executor.instances=6 \            --conf spark.dynamicAllocation.enabled=false \            ./pi_sleep.py \            --sleep 30    """parser=argparse.ArgumentParser()
parser.add_argument("--partition", default=4, type=int, help="number of spark rdd partition, default 4")
parser.add_argument("--sleep", default=0, type=int, help="seconds of map task sleep time, default 0")
args=parser.parse_args()
spark=SparkSession \
        .builder \
        .appName("PythonPi") \
        .getOrCreate()
start=time.time()
# partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2partitions=int(args.partition)
n=100000*partitionst_sleep=args.sleep/100000deff(_: int) ->float:
x=random() *2-1y=random() *2-1time.sleep(t_sleep)
return1ifx**2+y**2<=1else0count=spark.sparkContext.parallelize(range(1, n+1), partitions).map(f).reduce(add)
print("Pi is roughly %f"% (4.0*count/n))
end=time.time()
print(f'calc execute time: {end-start} s')
spark.stop()
相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
3月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
3月前
|
Kubernetes 容器
要获取ACK(阿里云容器服务)集群中的Deployment
要获取ACK(阿里云容器服务)集群中的Deployment【1月更文挑战第8天】【1月更文挑战第40篇】
81 4
|
3月前
|
Java Go Maven
阿里云云效问题之使用香港构建集群有审计要求如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
163 0
|
1月前
|
关系型数据库 MySQL Serverless
体验阿里云PolarDB MySQL Serverless集群
体验阿里云PolarDB MySQL Serverless集群
|
1月前
|
Kubernetes API 索引
|
2月前
|
Kubernetes 网络协议 Docker
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
|
1月前
|
缓存 Kubernetes Serverless
阿里云云效操作报错合集之AppStack资源池添加外部k8s集群时报错,该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
弹性计算 Kubernetes Java
阿里云云效操作报错合集之在绑定其他主体下的k8s集群时,通过kubeconfig导入集群时,出现报错,该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
敏捷开发 网络安全 持续交付
阿里云云效产品使用合集之ACK集群中的Pod需要访问公网,该如何实现
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
负载均衡 测试技术 网络安全
阿里云服务网格ASM多集群实践(一)多集群管理概述
服务网格多集群管理网络打通和部署模式的多种最佳实践