Maxcompute Spark作业管控利器—Cupid Console

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: Cupid Console是MaxCompute客户端 0.33.1 及更新版本新增的一个插件,下载MaxCompute客户端最新版本:https://github.com/aliyun/aliyun-odps-console/releases,配置好后,运行odpscmd,针对spark作业的管控,Cupid Console增加了一组spark的命令,可以通过运行help spark查看这些命令的用法。

一、背景

    Maxcompute平台目前可以支持运行Spark作业,Spark作业依托于Maxcompute的Cupid平台可以按照社区兼容的方式提交到Maxcompute上运行,支持读写Maxcompute表,和Maxcompute上原有的SQL/MR等作业共用Project的资源。相关产品的详细介绍可以参考官方文档:https://help.aliyun.com/document_detail/102357.html
    Maxcompute Spark作业也是Maxcompute平台上的一种作业类型,和其他作业一样,每一个Spark作业都具有一个唯一的InstanceId,可以通过InstanceId来管理相应的Spark作业,比如通过InstanceId我们可以获取到作业的Logview和停止作业。但是目前通过InstanceId能够获取到的信息对于Spark作业来说还是太有限,一些Spark作业特有的信息无法看到,这也是目前Spark用户运维管理过程中的一个痛点。本文接下来会介绍一款Maxcompute Spark作业管控利器—Cupid Console。

二、Cupid Console介绍

    Cupid Console是MaxCompute客户端 0.33.1 及更新版本新增的一个插件,下载MaxCompute客户端最新版本:
https://github.com/aliyun/aliyun-odps-console/releases
配置好后,运行odpscmd,针对spark作业的管控,Cupid Console增加了一组spark的命令,可以通过运行help spark;查看这些命令的用法;

Usage: spark list [-s <yarnState>(NEW,RUNNING,FINISHED,FAILED,KILLED)];
       spark info [-i <instanceId>] [-a <appId>];
       spark kill [-i <instanceId>] [-a <appId>];
       spark view [-i <instanceId>] [-a <appId>];
       spark search <appNameStr>;

可以看到,Cupid Console 提供的 spark 系列命令,可以针对 spark 类型的作业,同时提供 InstanceId 和 ApplicationId 两个维度进行管理的能力,更加贴近 Yarn 用户的使用习惯。

三、Cupid Console命令使用

1、spark list

    该命令可以列出当前Project下面所有的Spark作业,列出的结果包括StartTime(作业开始时间),InstanceId,State(作业状态),RunningMode(运行模式),ApplicationName(应用名字)等5列。

odps@ yeshan_test>spark list;
StartTime                     InstanceId                    State          RunningMode    ApplicationName
2020-02-09 20:52:14           20200209125214443gpwta5pr2    FAILED         default        com.aliyun.odps.spark.benchmark.Benchmark
2020-02-10 20:36:32           20200210123631787gu3325pr2    FINISHED       default        com.aliyun.odps.spark.examples.sparksql.SparkSQL
2020-02-10 20:38:38           20200210123838453gujojv21     FINISHED       default        SparkPi
2020-02-10 20:40:19           20200210124018718gt87hssa     NEW            default        SparkPi

另外支持-s参数,可以对作业运行状态进行过滤,例如如下的命令可以只列出失败的作业。

odps@ yeshan_test>spark list -s FAILED;
StartTime                     InstanceId                    State          RunningMode    ApplicationName
2020-02-09 20:52:14           20200209125214443gpwta5pr2    FAILED         default        com.aliyun.odps.spark.benchmark.Benchmark

2、spark info

    该命令可以通过InstanceId或者AppId单独查看某一个作业的详细信息,例如我们知道一个Spark作业的InstanceId为20200210123631787gu3325pr2,通过spark info命令,我们可以获取到如下的信息。

odps@ yeshan_test>spark info -i 20200210123631787gu3325pr2;
project: "yeshan_test"
instanceId: "20200210123631787gu3325pr2"
applicationId: "application_1581338179928_1489502267"
applicationTags: ""
runningMode: "default"
applicationType: "SPARK"
yarnApplicationState: 5
finalApplicationStatus: 1
originalTrackingUrl: "http://master396f51a3-3ac1-44c1-937b-450ff524d0c3cupid-11-196-129-13:8088"
trackingUrl: "http://jobview.odps.aliyun.com/proxyview/jobview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=yeshan_test&i=20200210123631787gu3325pr2&t=spark&id=application_1581338179928_1489502267&metaname=20200210123631787gu3325pr2&token=eU8xaWRLWFBYcExyMzB4WE9DcUFWcC95cnNFPSxPRFBTX09CTzpwNF8yNDcwNjM5MjQ1NDg0NDc5NzksMTU4MTU5NzQzMCx7IlN0YXRlbWVudCI6W3siQWN0aW9uIjpbIm9kcHM6UmVhZCJdLCJFZmZlY3QiOiJBbGxvdyIsIlJlc291cmNlIjpbImFjczpvZHBzOio6cHJvamVjdHMveWVzaGFuX3Rlc3QvaW5zdGFuY2VzLzIwMjAwMjEwMTIzNjMxNzg3Z3UzMzI1cHIyIl19XSwiVmVyc2lvbiI6IjEifQ=="
diagnostics: ""
applicationName: "com.aliyun.odps.spark.examples.sparksql.SparkSQL"
startedTime: 1581338192231
finishedTime: 1581338272045

从上面的例子中,我们可以看到spark info命令比较详细的给出了相应作业的基本信息,里面有该作业所在的project名字,appId,运行模式,trackingUrl,应用名字以及作业开始结束时间等;

3、spark kill

    该命令是通过InstanceId或者AppId来停止一个正在运行的Spark作业,通过InstanceId来kill的话和直接kill InstanceId这个命令是等价的。

odps@ yeshan_test>spark kill -i 20200210130226166gp1525pr2;
please check instance status. [status 20200210130226166gp1525pr2;]
odps@ yeshan_test>spark list -s KILLED;
StartTime                     InstanceId                    State          RunningMode    ApplicationName
2020-02-10 21:02:26           20200210130226166gp1525pr2    KILLED         default        SparkPi

4、spark view

    该命令是可以通过InstanceId或者AppId获取作业的Logview和Jobview链接,这个场景一般在没有保存Logview/Jobview链接或者链接失效时可以用来重新获取。

odps@ yeshan_test>spark view -i 20200210123631787gu3325pr2;
Some env might need to set following flags.
set odps.moye.trackurl.host=****
set odps.cupid.webproxy.endpoint=****

jobview:
http://jobview.odps.aliyun.com/proxyview/jobview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=yeshan_test&i=20200210123631787gu3325pr2&t=spark&id=application_1581338179928_1489502267&metaname=20200210123631787gu3325pr2&token=TkpWV0VxZ0tLS29XN2VXd0xMTGRNMVg1elZNPSxPRFBTX09CTzpwNF8yNDcwNjM5MjQ1NDg0NDc5NzksMTU4MTU5ODgxMCx7IlN0YXRlbWVudCI6W3siQWN0aW9uIjpbIm9kcHM6UmVhZCJdLCJFZmZlY3QiOiJBbGxvdyIsIlJlc291cmNlIjpbImFjczpvZHBzOio6cHJvamVjdHMveWVzaGFuX3Rlc3QvaW5zdGFuY2VzLzIwMjAwMjEwMTIzNjMxNzg3Z3UzMzI1cHIyIl19XSwiVmVyc2lvbiI6IjEifQ==
logview:
http://logview.odps.aliyun.com/logview/?h=http://service.cn.maxcompute.aliyun.com/api&p=yeshan_test&i=20200210123631787gu3325pr2&token=cGREcHlQbkxTQnJDR2hrM1RHaVdCTDNRa3ZRPSxPRFBTX09CTzpwNF8yNDcwNjM5MjQ1NDg0NDc5NzksMTU4MTk0NDQxMCx7IlN0YXRlbWVudCI6W3siQWN0aW9uIjpbIm9kcHM6KiJdLCJFZmZlY3QiOiJBbGxvdyIsIlJlc291cmNlIjpbImFjczpvZHBzOio6KiJdfV0sIlZlcnNpb24iOiIxIn0=

5、spark search

    该命令是可以通过Spark作业的应用名字来查找这个Project中的Spark作业,例如下面的命令查到了所有名字为SparkPi的作业的InstanceId。有了作业的InstanceId后,通过spark info命令可以获取更详细的作业信息。

odps@ yeshan_test>spark search SparkPi;
instanceId: 20200210123838453gujojv21, appName: SparkPi
instanceId: 20200210124018718gt87hssa, appName: SparkPi
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
5月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
301 0
|
8月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
393 79
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
861 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
5月前
|
机器学习/深度学习 存储 算法
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)
本文围绕 Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用展开,剖析作业现状与挑战,阐述技术原理及应用方法,结合案例与代码,给出具有实操性的解决方案。
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)
|
8月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
消息中间件 分布式计算 大数据
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
522 0
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
240 0
|
10月前
|
存储 分布式计算 调度
Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?
Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于: 1. **Driver 和 Executor 独立**:任务执行不依赖 Master。 2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。 3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。 4. **容错机制**:任务可在其他 Executor 上重新调度。 这些特性保证了集群在 Master 故障时仍能正常运行。
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
536 6
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
537 2

热门文章

最新文章

相关产品

  • 云原生大数据计算服务 MaxCompute