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

简介: 需求:日常在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()
相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
2月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
3月前
|
Java Go Maven
阿里云云效问题之使用香港构建集群有审计要求如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
132 0
|
4月前
|
Kubernetes 容器
要获取ACK(阿里云容器服务)集群中的Deployment
要获取ACK(阿里云容器服务)集群中的Deployment【1月更文挑战第8天】【1月更文挑战第40篇】
65 4
|
1月前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
20 0
|
4月前
|
Kubernetes 容器
阿里云OpenAPI咋取到ack集群的Deployment呀?
阿里云OpenAPI咋取到ack集群的Deployment呀?【1月更文挑战第17天】【1月更文挑战第84篇】
22 2
|
4月前
|
运维 Cloud Native 安全
笔记 - 《阿里云云原生架构实践》
《阿里云云原生架构实践》的笔记
|
4月前
|
弹性计算 运维 Cloud Native
阿里云云原生弹性方案,用弹性解决集群资源利用率难题
本文主要介绍了通过弹性,实现成本优化,解决集群资源利用率难题。
92522 8
|
5月前
|
边缘计算 监控 Kubernetes
阿里云ACK Edge集群
阿里云ACK Edge集群(Alibaba Cloud ACK Edge Cluster)是一种基于阿里云ACK(Alibaba Cloud Kubernetes)服务的边缘计算集群,能够将应用程序部署到离用户更近的边缘节点上,从而提高应用程序的性能和可靠性。
80 1
|
5月前
|
Kubernetes 容灾 网络协议
阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统
阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统
61916 2
|
5月前
|
运维 Kubernetes 监控
阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
本文基于 ACK 稳定性保障实践经验,帮助用户全面理解 ACK 稳定性理论和优化策略,并了解如何使用相应的工具和服务进行稳定性保障。
184109 23