Maxcompute Spark作业管控利器—Cupid Console

简介: 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
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
SQL 分布式计算 监控
MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
【2月更文挑战第4天】MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
27 8
|
3月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
158 0
|
11天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
3月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
2月前
|
分布式计算 大数据 Java
Spark 大数据实战:基于 RDD 的大数据处理分析
Spark 大数据实战:基于 RDD 的大数据处理分析
120 0
|
3月前
|
存储 分布式计算 监控
Spark作业的调度与执行流程
Spark作业的调度与执行流程
|
3月前
|
分布式计算 监控 大数据
Spark RDD分区和数据分布:优化大数据处理
Spark RDD分区和数据分布:优化大数据处理
|
4月前
|
分布式计算 大数据 Linux
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
104 0
|
4月前
|
SQL 分布式计算 大数据
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
102 0
|
4月前
|
分布式计算 资源调度 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day30】——Spark数据调优(文末附完整文档)
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day30】——Spark数据调优(文末附完整文档)
65 0

相关产品

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