通过MaxCompute提交的SQL、Spark和MapReduce等作业会实例化,以MaxCompute实例(Instance)的形式存在。本文为您介绍如何查看指定的实例信息和实例状态、停止实例以及获得实例运行日志信息等常用实例操作。

MaxCompute实例有对应的实例ID,实例ID永久有效,且全局唯一。实例操作常用命令如下。
类型 功能 角色 操作入口
查看实例信息 查看实例信息。 具备查看实例权限(Read)的用户或具备项目查看对象列表权限(List)的用户。 本文中的命令您可以在如下工具平台执行:
查看实例状态 查看指定实例的状态。 具备查看实例权限(Read)的用户。
查看正在执行的实例信息 查看项目中正在执行的实例信息。 具备查看实例权限(Read)的用户或具备项目查看对象列表权限(List)的用户。
停止实例 停止指定的处于Running状态的实例。 具备更新实例权限(Write)的用户。
获取实例对应的作业信息 根据具体的实例ID获取作业信息。 具备查看实例权限(Read)的用户。
获取实例对应的作业运行日志信息 根据具体的实例ID获取作业的运行日志信息。

查看实例信息

查看实例信息,包括StartTime(时间精确到秒)、RunTime(s)、Status(实例状态)、InstanceID、实例所有者、Query(执行语句)。

  • 命令格式
    show p|proc|processlist|instances [from <startdate>] [to <enddate>] [-p <project_name>] [-limit <number> | <number>] [-all];
    ls|list instances [from <startdate>] [to <enddate>] [-p <project_name>] [-limit <number> | <number>] [-all];

    show pshow procshow processlistshow instancesls instanceslist instances命令等效。

  • 参数说明
    • startdateenddate:可选。返回从起始时间startdate到结束时间enddate期间用户提交的实例信息,startdate要小于enddate。不包含enddate当天提交的实例信息。格式必须为yyyy-mm-dd,精度为天。如果不指定,则返回用户当天提交的实例。
    • project_name:可选。待查询实例所属的MaxCompute项目名称,需要具备目标MaxCompute项目的查看实例权限。如果不指定,则表示查询当前所处的MaxCompute项目。
    • number:可选。指定返回实例的数量。
    • 依照时间排序,返回提交时间距离当前时间最近的number个实例信息。如果不指定number,则返回满足要求的所有实例信息。-limit <number>number二者等效。
    • -all:可选。返回MaxCompute项目中所有成员执行过的实例。如果不指定,则表示返回MaxCompute项目中当前用户执行过的实例。

      不配置number时,默认最大返回50条;如果配置了number,返回number个实例信息。

  • 使用示例
    • 示例1:查看当前MaxCompute项目下当前用户当天执行的所有实例信息。命令示例如下。
      show p;
      返回结果如下。
      StartTime             RunTime  Status   InstanceID                    Owner                            Query
      2021-09-14 11:43:04   0s       Success  20210914**************3rw2    ALIYUN$****@test.aliyunid.com
      2021-09-14 11:43:05   1s       Success  20210914**************5t32    ALIYUN$****@test.aliyunid.com select date_sub(datetime '2005-03-01 00:00:00', 1);
      2021-09-14 11:58:13   0s       Success  20210914**************5pr2    ALIYUN$****@test.aliyunid.com
      2021-09-14 11:58:15   1s       Success  20210914**************5qgr    ALIYUN$****@test.aliyunid.com select date_sub(date '2005-02-28', -1);
      2021-09-14 12:02:15   1s       Success  20210914**************h8o7    ALIYUN$****@test.aliyunid.com select date_sub('2008-03-01 00:00:00', 2);
      2021-09-14 12:02:15   0s       Success  20210914**************5t32    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:31   0s       Success  20210914**************5pr2    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:32   0s       Success  20210914**************euq2    ALIYUN$****@test.aliyunid.com select date_sub('2005-03-01 00:00:00', 2);
      2021-09-14 13:35:42   0s       Success  20210914**************1ms2    ALIYUN$****@test.aliyunid.com
      2021-09-14 13:35:43   0s       Success  20210914**************j8o7    ALIYUN$****@test.aliyunid.com select date_sub(getdate(),1);
      2021-09-14 13:40:40   1s       Success  20210914**************h3wz    ALIYUN$****@test.aliyunid.com select date_sub(getdate(),0);
      2021-09-14 13:40:40   0s       Success  20210914**************9nm7    ALIYUN$****@test.aliyunid.com
      12 instances
    • 示例2:查看当前MaxCompute项目下当前用户在指定时间段内执行的实例,并指定返回实例数量。命令示例如下。
      show instances from 2021-09-14 to 2021-09-15 -limit 10;
      返回结果如下。
      StartTime             RunTime  Status   InstanceID                    Owner                            Query
      2021-09-14 11:58:13   0s       Success  20210914**************5pr2    ALIYUN$****@test.aliyunid.com
      2021-09-14 11:58:15   1s       Success  20210914**************5qgr    ALIYUN$****@test.aliyunid.com    select date_sub(date '2005-02-28', -1);
      2021-09-14 12:02:15   1s       Success  20210914**************h8o7    ALIYUN$****@test.aliyunid.com    select date_sub('2008-03-01 00:00:00', 2);
      2021-09-14 12:02:15   0s       Success  20210914**************5t32    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:31   0s       Success  20210914**************5pr2    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:32   0s       Success  20210914**************euq2    ALIYUN$****@test.aliyunid.com    select date_sub('2005-03-01 00:00:00', 2);
      2021-09-14 13:35:42   0s       Success  20210914**************1ms2    ALIYUN$****@test.aliyunid.com
      2021-09-14 13:35:43   0s       Success  20210914**************j8o7    ALIYUN$****@test.aliyunid.com    select date_sub(getdate(),1);
      2021-09-14 13:40:40   1s       Success  20210914**************h3wz    ALIYUN$****@test.aliyunid.com    select date_sub(getdate(),0);
      2021-09-14 13:40:40   0s       Success  20210914**************9nm7    ALIYUN$****@test.aliyunid.com
      10 instances
    • 示例3:查看另一MaxCompute项目下所有用户在指定时间段内执行的实例,并指定返回实例数量。命令示例如下。
      ls instances from 2021-09-14 to 2021-09-15 -p doc_test_dev -all -limit 10;
      返回结果如下。
      StartTime             RunTime  Status   InstanceID                    Owner                            Query
      2021-09-14 11:59:16   0s       Success  20210914**************6pr3    ALIYUN$****@test.aliyunid.com
      2021-09-14 11:59:20   1s       Success  20210914**************6qgr    ALIYUN$****@test.aliyunid.com    select date_sub(date '2007-02-26', -1);
      2021-09-14 12:02:19   1s       Success  20210914**************h8o7    ALIYUN$****@test.aliyunid.com    select date_sub('2009-03-01 00:00:00', 2);
      2021-09-14 12:02:25   0s       Success  20210914**************7t42    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:37   0s       Success  20210914**************7pr2    ALIYUN$****@test.aliyunid.com
      2021-09-14 12:02:40   0s       Success  20210914**************emq2    ALIYUN$****@test.aliyunid.com    select date_sub('2015-03-01 00:00:00', 2);
      2021-09-14 13:35:42   0s       Success  20210914**************1ms2    ALIYUN$****@test.aliyunid.com
      2021-09-14 13:35:43   0s       Success  20210914**************68o7    ALIYUN$kiki                      select date_sub(getdate(),1);
      2021-09-14 13:45:40   1s       Success  20210914**************73wz    ALIYUN$kiki                      select date_sub(getdate(),0);
      2021-09-14 13:45:45   0s       Success  20210914**************9nm7    ALIYUN$dreak
      10 instances
    • 示例4:查看另一MaxCompute项目下所有用户在当天执行的实例,并指定返回实例数量。命令示例如下。
      show p -p doc_test_dev -all 5;
      返回结果如下。
      StartTime             RunTime  Status   InstanceID                    Owner                            Query
      2021-09-14 12:02:40   0s       Success  20210914**************emq2    ALIYUN$****@test.aliyunid.com    select date_sub('2015-03-01 00:00:00', 2);
      2021-09-14 13:35:42   0s       Success  20210914**************1ms2    ALIYUN$****@test.aliyunid.com
      2021-09-14 13:35:43   0s       Success  20210914**************68o7    ALIYUN$kiki                      select date_sub(getdate(),1);
      2021-09-14 13:45:40   1s       Success  20210914**************73wz    ALIYUN$kiki                      select date_sub(getdate(),0);
      2021-09-14 13:45:45   0s       Success  20210914**************9nm7    ALIYUN$dreak
      5 instances

查看实例状态

查看指定实例的状态。如果此实例并非当前用户创建,则返回报错。

  • 命令格式
    status <instance_id>;
  • 参数说明

    instance_id:必填。实例的唯一标识符,指定查询哪个实例状态。

  • 返回结果
    实例有以下6种状态:
    • Running:正在运行。
    • Success:成功结束。
    • Waiting:等待中。
    • Failed:作业失败,但是尚未改写目标表数据。
    • Cancelled:被取消。
    • Terminated:作业已执行结束。
  • 使用示例
    --查看ID为20131225123xxxxxxxxxxxxxxx的实例状态。
    status 20131225123xxxxxxxxxxxxxxx;
    返回结果如下。
    Success

查看正在执行的实例信息

查看项目中正在执行的实例信息,包括InstanceID、Owner、Type、StartTime、Progress、Status、Priority、RuntimeUsage(CPU/MEM)、totalUsage(CPU/MEM)、QueueingInfo(POS/LEN)等。

  • 命令格式
    --查看当前项目中当前账号所提交的正在执行的实例信息。
    top instance;
    --返回当前项目下所有或指定数量的正在执行的实例信息。
    top instance [-all][-limit <number>];
  • 参数说明
    • -all:可选。返回当前项目下所有正在执行的作业,默认最大返回50条。
    • -limit number:可选。返回当前项目下指定数量的正在执行的作业。
  • 使用示例
    --返回当前项目下前5条正在执行的实例信息。
    top instance -limit 5;
    返回结果如下。
    QueueingInstances: 0 total.

停止实例

停止指定的实例,实例的状态必须为Running。
说明 此命令是一个异步的过程,在系统接受此请求并返回结果后,并不意味着分布式的作业已经停止,只能代表系统已接收到请求,因此还要执行STATUS命令,查看此Instance的状态后才可以确定是否已停止实例。
  • 命令格式
    kill <instance_id>;
  • 参数说明

    instance_id:实例的唯一标识符。状态必须是Running的实例,否则返回异常。

  • 使用示例
    --停止ID为20131225123xxxxxxxxxxxxxxx的实例。
    kill 20131225123xxxxxxxxxxxxxxx;

获取实例对应的作业信息

根据具体的实例ID获取作业信息,包括具体的SQL、Owner、StartTime、EndTime和Status等信息。

  • 命令格式
    desc instance <instance_id>;
  • 参数说明

    instance_id:实例的唯一标识符。

  • 使用示例
    --查询ID为20150715xxxxxxxxxxxxxxx的实例对应的作业信息。
    desc instance 20150715xxxxxxxxxxxxxxx;
    返回结果如下。
    ID                                      20150715xxxxxxxxxxxxxxx
    Owner                                   ALIYUN$XXXXXX@alibaba-inc.com
    StartTime                               2015-07-15 18:34:41
    EndTime                                 2015-07-15 18:34:42
    Status                                  Terminated
    console_select_query_task_1436956481295 Success
    Query                                   select * from mj_test;

获取实例对应的作业运行日志信息

根据具体的实例ID获取作业的运行日志信息,包含Logview链接。您可以通过查看Logview获得作业的详细日志。
说明 获取最近3天Instance对应的Logview可正常打开。超过3天的Instance对应Logview可获取,但因为过期被清除而无法打开。
  • 命令格式
    wait <instance_id>;
  • 参数说明

    instance_id:实例的唯一标识符。

  • 使用示例
    --查看实例ID为20170925161122379gxxxxxx的作业运行日志信息。
    wait 20170925161122379gxxxxxx;
    返回结果如下。
    ID = 20170925161122379g3xxxxxx
    Log view:
    http://logview.odps.aliyun.com/logview/?h=http://service.odps.aliyun.com/api&p=alian&i=201709251611223xxxxxxdqp&token=XXXXXXvbiI6IjEifQ==
    Job Queueing...
    Summary:
    resource cost: cpu 0.05 Core * Min, memory 0.05 GB * Min
    inputs:
            alian.bank_data: 41187 (588232 bytes)
    outputs:
            alian.result_table: 8 (640 bytes)
    Job run time: 2.000
    Job run mode: service job
    Job run engine: execution engine
    M1:
            instance count: 1
            run time: 1.000
            instance time:
                    min: 1.000, max: 1.000, avg: 1.000
            input records:
                    TableScan_REL5213301: 41187  (min: 41187, max: 41187, avg: 41187
    )
            output records:
                    StreamLineWrite_REL5213305: 8  (min: 8, max: 8, avg: 8)
    R2_1:
            instance count: 1
            run time: 2.000
            instance time:
                    min: 2.000, max: 2.000, avg: 2.000
            input records:
                    StreamLineRead_REL5213306: 8  (min: 8, max: 8, avg: 8)
            output records:
                    TableSink_REL5213309: 8  (min: 8, max: 8, avg: 8)