Maxcompute Spark作业管控利器—Cupid Console

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
7天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
32 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
29天前
|
消息中间件 分布式计算 大数据
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
92 0
|
29天前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
54 0
|
29天前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
35 0
|
29天前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
71 0
|
9天前
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
30 6
|
7天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
33 2
|
7天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
27 1
|
7天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
8天前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
37 1

相关产品

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