阿里云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 的使用方法。
相关文章
|
6月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
89 3
|
1月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
37 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
47 1
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
85 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
37 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
46 0
|
2月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
63 0
|
6月前
|
分布式计算 Hadoop Java
【集群模式】执行MapReduce程序-wordcount
【集群模式】执行MapReduce程序-wordcount
|
6月前
|
分布式计算 Java Hadoop
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决

相关产品

  • 开源大数据平台 E-MapReduce
  • 相关实验场景

    更多