更新时间:2024-11-22 GMT+08:00
分享

新增作业并执行(废弃)

功能介绍

在MRS集群中新增一个作业,并执行作业。该接口不兼容Sahara。 集群ID可参考查询集群列表接口获取。

MRS 3.x版本镜像,不支持MRS V1.1作业管理接口,需要使用V2作业管理接口

接口约束

  • DistCp作业需要配置文件操作类型(file_action)。
  • Spark SQL需要配置Spark SQL语句(hql)和sql程序路径(hive_script_path)。
  • 开启Kerberos认证的安全集群暂不支持使用该接口提交作业。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1.1/{project_id}/jobs/submit-job

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目编号。获取方法,请参见获取项目ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

job_name

String

参数解释:

作业名称

约束限制:

不涉及

取值范围:

只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。

不同作业的名称允许相同,但不建议设置相同。

默认取值:

不涉及

cluster_id

String

参数解释:

集群ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

jar_path

String

参数解释:

执行程序Jar包或sql文件地址

约束限制:

作业类型为MapReduce或Spark时,jar_path参数为必选。

取值范围:

  • 最多为1023字符,不能包含;|&><'$特殊字符,且不可为空或全空格。
  • 需要以“/”或“s3a://”开头。OBS路径不支持KMS加密的文件或程序。
  • Spark Script需要以“.sql”结尾,MapReduce和Spark Jar需要以“.jar”结尾,sql和jar不区分大小写。

默认取值:

不涉及

input

String

参数解释:

数据输入地址

约束限制:

不涉及

取值范围:

必须以“/”或“s3a://”开头。请配置为正确的OBS路径,OBS路径不支持KMS加密的文件或程序。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

output

String

参数解释:

数据输出地址

约束限制:

不涉及

取值范围:

必须以“/”或“s3a://”开头。请配置为正确的OBS路径,如果该路径不存在,系统会自动创建。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

job_log

String

参数解释:

作业日志存储地址,该日志信息记录作业运行状态。

约束限制:

不涉及

取值范围:

必须以“/”或“s3a://”开头,请配置为正确的OBS路径。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

job_type

Integer

参数解释:

作业类型码。

约束限制:

不涉及

取值范围:

  • 1:MapReduce
  • 2:Spark
  • 3:Hive Script
  • 4:HiveSQL(当前不支持)
  • 5:DistCp,导入、导出数据。
  • 6:Spark Script
  • 7:Spark SQL,提交SQL语句(该接口当前不支持)

默认取值:

不涉及

file_action

String

参数解释:

文件操作类型

约束限制:

不涉及

取值范围:

  • export:从HDFS导出数据至OBS。
  • import:从OBS导入数据至HDFS。

默认取值:

不涉及

arguments

String

参数解释:

程序执行的关键参数

约束限制:

该参数由用户程序内的函数指定,MRS只负责参数的传入。

取值范围:

最多为150000字符,不能包含;|&>'<$!"\特殊字符,可为空。 说明: 用户输入带有敏感信息(如登录密码)的参数时,可通过在参数名前添加“@”的方式,为该参数值加密,以防止敏感信息被明文形式持久化。在查看作业信息时,敏感信息显示为“*”。 例如:username=xxx @password=yyy

默认取值:

不涉及

hql

String

参数解释:

Spark SQL语句

约束限制:

该语句需要进行Base64编码和解码,“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”为标准的编码表,MRS使用“ABCDEFGHILKJMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”进行Base64编码。在编码后所得字符串首位任意加上一个字母,即得到Hql参数的值。后台自动进行解码得到Spark SQL语句。 使用样例:

  1. 在Web界面输入Spark SQL语句“show tables;”。
  2. 使用“ABCDEFGHILKJMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”编码后得到字符串“c2hvdyB0YWLsZXM7”。
  3. 在“c2hvdyB0YWLsZXM7”首位任意加上一字母,例如“gc2hvdyB0YWLsZXM7”,即Hql参数的值。
  4. 后台自动进行解码得到Spark SQL语句“show tables;”。

取值范围:

不涉及

默认取值:

不涉及

hive_script_path

String

参数解释:

sql程序路径。

约束限制:

仅Spark Script和Hive Script作业需要使用此参数。

取值范围:

  • 最多为1023字符,不能包含;|&><'$特殊字符,且不可为空或全空格。
  • 需要以“/”或“s3a://”开头,OBS路径不支持KMS加密的文件或程序。
  • 需要以“.sql”结尾,sql不区分大小写。

默认取值:

不涉及

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

templated

Boolean

参数解释:

作业执行对象是否由作业模板生成。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

created_at

Long

参数解释:

作业创建时间,十位时间戳。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

updated_at

Long

参数解释:

作业更新时间,十位时间戳。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

id

String

参数解释:

作业ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

tenant_id

String

参数解释:

项目编号。获取方法,请参见获取项目ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_id

String

参数解释:

作业应用ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_name

String

参数解释:

作业名称。

约束限制:

不涉及

取值范围:

只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。

不同作业的名称允许相同,但不建议设置相同。

默认取值:

不涉及

input_id

String

参数解释:

数据输入ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

output_id

String

参数解释:

数据输出ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

start_time

Long

参数解释:

作业执行开始时间,十位时间戳。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

end_time

Long

参数解释:

作业执行结束时间,十位时间戳。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

cluster_id

String

参数解释:

集群ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

engine_job_id

String

参数解释:

Oozie工作流ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

return_code

String

参数解释:

运行结果返回码。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

is_public

Boolean

参数解释:

是否公开。

约束限制:

当前版本不支持该功能。

取值范围:

不涉及

默认取值:

不涉及

is_protected

Boolean

参数解释:

是否受保护。

约束限制:

当前版本不支持该功能。

取值范围:

不涉及

默认取值:

不涉及

group_id

String

参数解释:

作业执行组ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

jar_path

String

参数解释:

执行程序Jar包或sql文件地址

约束限制:

不涉及

取值范围:

  • 最多为1023字符,不能包含;|&><'$特殊字符,且不可为空或全空格。
  • 需要以“/”或“s3a://”开头。OBS路径不支持KMS加密的文件或程序。
  • Spark Script需要以“.sql”结尾,MapReduce和Spark Jar需要以“.jar”结尾,sql和jar不区分大小写。

默认取值:

不涉及

input

String

参数解释:

数据输入地址。

约束限制:

请配置为正确的OBS路径,OBS路径不支持KMS加密的文件或程序。

取值范围:

必须以“/”或“s3a://”开头。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

output

String

参数解释:

数据输出地址。

约束限制:

不涉及

取值范围:

必须以“/”或“s3a://”开头。请配置为正确的OBS路径,如果该路径不存在,系统会自动创建。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

job_log

String

参数解释:

作业日志存储地址,该日志信息记录作业运行状态。

约束限制:

不涉及

取值范围:

必须以“/”或“s3a://”开头,请配置为正确的OBS路径。

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

job_type

Integer

参数解释:

作业类型码。

约束限制:

只有包含Spark和Hive组件的集群才能新增Spark和Hive类型的作业。

取值范围:

  • 1:MapReduce
  • 2:Spark
  • 3:Hive Script
  • 4:HiveSQL(当前不支持)
  • 5:DistCp,导入、导出数据。
  • 6:Spark Script
  • 7:Spark SQL,提交SQL语句,(该接口当前不支持)

默认取值:

不涉及

file_action

String

参数解释:

文件操作类型

约束限制:

不涉及

取值范围:

  • export:从HDFS导出数据至OBS。
  • import:从OBS导入数据至HDFS。

默认取值:

不涉及

arguments

String

参数解释:

程序执行的关键参数。

约束限制:

该参数由用户程序内的函数指定,MRS只负责参数的传入。

取值范围:

最多为150000字符,不能包含;|&>'<$!"\特殊字符,可为空。 说明: 用户输入带有敏感信息(如登录密码)的参数时,可通过在参数名前添加“@”的方式,为该参数值加密,以防止敏感信息被明文形式持久化。在查看作业信息时,敏感信息显示为“*”。 例如:username=admin @password=***

默认取值:

不涉及

hql

String

参数解释:

Hive&Spark Sql语句

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_state

Integer

参数解释:

作业状态码。

约束限制:

不涉及

取值范围:

  • -1:Terminated
  • 1:Starting
  • 2:Running
  • 3:Completed
  • 4:Abnormal
  • 5:Error

默认取值:

不涉及

job_final_status

Integer

参数解释:

作业最终状态码。

约束限制:

不涉及

取值范围:

  • 0:未完成
  • 1:执行错误,终止执行
  • 2:执行完成并且成功
  • 3:已取消

默认取值:

不涉及

hive_script_path

String

参数解释:

sql程序路径。

约束限制:

仅Spark Script和Hive Script作业需要使用此参数。

取值范围:

  • 最多为1023字符,不能包含;|&><'$特殊字符,且不可为空或全空格。
  • 需要以“/”或“s3a://”开头,OBS路径不支持KMS加密的文件或程序。
  • 需要以“.sql”结尾,sql不区分大小写。

默认取值:

不涉及

create_by

String

参数解释:

创建作业的用户ID。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

finished_step

Integer

参数解释:

当前已完成的步骤数。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_main_id

String

参数解释:

作业主ID。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_step_id

String

参数解释:

作业步骤ID。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

postpone_at

Long

参数解释:

延迟时间,十位时间戳。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

step_name

String

参数解释:

作业步骤名。

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

step_num

Integer

参数解释:

步骤数量

为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

task_num

Integer

参数解释:

任务数量。 为兼容历史版本,保留此参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

update_by

String

参数解释:

更新作业的用户ID。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

credentials

String

参数解释:

令牌,当前版本不支持。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

user_id

String

参数解释:

创建作业的用户ID。

历史版本兼容,不再使用。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

job_configs

Map<String,Object>

参数解释:

键值对集合,用于保存作业运行配置。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

extra

Map<String,Object>

参数解释:

认证信息,当前版本不支持。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

data_source_urls

Map<String,Object>

参数解释:

数据源URL。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

info

Map<String,Object>

参数解释:

键值对集合,包含oozie返回的作业运行信息。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求示例

  • MapReduce作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 1,
      "job_name" : "mrs_test_jobone_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "jar_path" : "s3a://mrs-opsadm/jarpath/hadoop-mapreduce-examples-2.7.2.jar",
      "arguments" : "wordcount",
      "input" : "s3a://mrs-opsadm/input/",
      "output" : "s3a://mrs-opsadm/output/",
      "job_log" : "s3a://mrs-opsadm/log/",
      "file_action" : "",
      "hql" : "",
      "hive_script_path" : ""
    }
  • Spark作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 2,
      "job_name" : "mrs_test_sparkjob_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "jar_path" : "s3a://mrs-opsadm/jarpath/spark-test.jar",
      "arguments" : "org.apache.spark.examples.SparkPi 10",
      "input" : "",
      "output" : "s3a://mrs-opsadm/output/",
      "job_log" : "s3a://mrs-opsadm/log/",
      "file_action" : "",
      "hql" : "",
      "hive_script_path" : ""
    }
  • Hive Script作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 3,
      "job_name" : "mrs_test_SparkScriptJob_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "jar_path" : "s3a://mrs-opsadm/jarpath/Hivescript.sql",
      "arguments" : "",
      "input" : "s3a://mrs-opsadm/input/",
      "output" : "s3a://mrs-opsadm/output/",
      "job_log" : "s3a://mrs-opsadm/log/",
      "file_action" : "",
      "hql" : "",
      "hive_script_path" : "s3a://mrs-opsadm/jarpath/Hivescript.sql"
    }
  • DistCp导入作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 5,
      "job_name" : "mrs_test_importjob_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "input" : "s3a://mrs-opsadm/jarpath/hadoop-mapreduce-examples-2.7.2.jar",
      "output" : "/user",
      "file_action" : "import"
    }
  • DistCp导出作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 5,
      "job_name" : "mrs_test_exportjob_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "input" : "/user/hadoop-mapreduce-examples-2.7.2.jar",
      "output" : "s3a://mrs-opsadm/jarpath/",
      "file_action" : "export"
    }
  • Spark Script作业请求示例
    POST https://{endpoint}/v1.1/{project_id}/jobs/submit-job
    
    {
      "job_type" : 6,
      "job_name" : "mrs_test_sparkscriptjob_20170602_141106",
      "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
      "jar_path" : "s3a://mrs-opsadm/jarpath/sparkscript.sql",
      "arguments" : "",
      "input" : "s3a://mrs-opsadm/input/",
      "output" : "s3a://mrs-opsadm/output/",
      "job_log" : "s3a://mrs-opsadm/log/",
      "file_action" : "",
      "hql" : "",
      "hive_script_path" : "s3a://mrs-opsadm/jarpath/sparkscript.sql"
    }

响应示例

状态码: 200

新增作业成功。

{
  "job_execution" : {
    "templated" : "false",
    "created_at" : "1496387588",
    "updated_at" : "1496387588",
    "id" : "12ee9ae4-6ee1-48c6-bb84-fb0b4f76cf03",
    "tenant_id" : "c71ad83a66c5470496c2ed6e982621cc",
    "job_id" : "",
    "job_name" : "mrs_test_jobone_20170602_141106",
    "input_id" : null,
    "output_id" : null,
    "start_time" : "1496387588",
    "end_time" : null,
    "cluster_id" : "e955a7a3-d334-4943-a39a-994976900d56",
    "engine_job_id" : null,
    "return_code" : null,
    "is_public" : null,
    "is_protected" : null,
    "group_id" : "12ee9ae4-6ee1-48c6-bb84-fb0b4f76cf03",
    "jar_path" : "s3a://mrs-opsadm/jarpath/hadoop-mapreduce-examples-2.7.2.jar",
    "input" : "s3a://mrs-opsadm/input/",
    "output" : "s3a://mrs-opsadm/output/",
    "job_log" : "s3a://mrs-opsadm/log/",
    "job_type" : "1",
    "file_action" : "",
    "arguments" : "wordcount",
    "hql" : "",
    "job_state" : "2",
    "job_final_status" : "0",
    "hive_script_path" : "",
    "create_by" : "b67132be2f054a45b247365647e05af0",
    "finished_step" : "0",
    "job_main_id" : "",
    "job_step_id" : "",
    "postpone_at" : "1496387588",
    "step_name" : "",
    "step_num" : "0",
    "task_num" : "0",
    "update_by" : "b67132be2f054a45b247365647e05af0",
    "credentials" : "",
    "user_id" : "b67132be2f054a45b247365647e05af0",
    "job_configs" : null,
    "extra" : null,
    "data_source_urls" : null,
    "info" : null
  }
}

状态码

状态码

描述

200

新增作业成功。

错误码

请参见错误码

相关文档