Updated on 2022-12-14 GMT+08:00

Creating a Job Object

Function

This API is used to create a job object. This API is compatible with Sahara.

URI

  • Format

    POST /v1.1/{project_id}/jobs

  • Parameter description
    Table 1 URI parameter description

    Parameter

    Mandatory

    Description

    project_id

    Yes

    Project ID. For details on how to obtain the project ID, see Obtaining a Project ID.

Request

Table 2 Request parameter description

Parameter

Mandatory

Type

Description

name

Yes

String

Job object name

Contains 1 to 64 characters and consists of letters, digits, hyphens (-), and underscores (_) only.

mains

No

Array

Executable program set of a job object

If the job type is Hive or Spark Script, the value of mains must not be empty.

For details on how to obtain the executable program, see Creating a Job Binary Object.

libs

No

Array

Dependency package set of a job object

If the job type is MapReduce or Spark, the value of libs must not be empty.

For details on how to obtain the dependency package, see Creating a Job Binary Object.

is_protected

No

Bool

Whether a job object is protected

  • true
  • false

The current version does not support this function.

interface

No

Array

User-defined interface set

The current version does not support this function.

is_public

No

Bool

Whether a job object is public

  • true
  • false

The current version does not support this function.

type

Yes

String

Job object type

  • MapReduce
  • Spark
  • Hive (not supported currently)
  • hql
  • DistCp
  • SparkScript
  • SparkSql (not supported in this API currently)

description

No

String

Job object description

Contains a maximum of 65535 characters.

Response

Table 3 Response parameter description

Parameter

Type

Description

description

String

Job object description

tenant_id

String

Project ID. For details on how to obtain the project ID, see Obtaining a Project ID.

created_at

String

Job object creation time

updated_at

String

Job object update time

mains

Array

Executable program set of a job object

libs

Array

Dependency package set of a job object

is_protected

Bool

Whether a job object is protected

  • true
  • false

The current version does not support this function.

interface

Array

User-defined interface set

is_public

Bool

Whether a job object is public

  • true
  • false

The current version does not support this function.

type

String

Job object type

id

String

Job object ID

name

String

Job object name

Example

  • Example request
    The request example of MapReduce job: 
    {    
        "name": "my-mapreduce-job",         
        "mains": [ ],         
        "libs": [                 
        "092b628b-26a3-4571-9ba4-f8d000df8877"        
        ],         
        "is_protected": false,         
        "interface": [ ],         
        "is_public": false,         
        "type": "MapReduce",         
        "description": "This is the Map Reduce job template"    
    } 
     
    The request example of Spark job: 
    { 
        "name": "my-spark-job",  
        "type": "Spark",  
        "description": "This is the Spark job template",  
        "mains": [ ],  
        "libs": [ 
            "ed2ffd92-6308-44cb-b930-e10b6d65d3aa" 
        ],  
        "is_public": false,  
        "is_protected": false,  
        "interface": [ ] 
    }
    
    The request example of DistCp job: 
    { 
        "name": "my-distcp-job",  
        "type": "DistCp",  
        "description": "This is the DistCp job template",  
        "mains": [ ],  
        "libs": [ ],  
        "is_public": false,  
        "is_protected": false,  
        "interface": [ ] 
    }
    
    The request example of Hive job:
    { 
        "name": "my-hive-job",  
        "type": "Hive",  
        "description": "This is the Hive job template",  
    "mains": [
        "0d58a7e1-3ea7-413e-9a94-7702f99a9fa2"
    ],  
        "libs": [ ],  
        "is_public": false,  
        "is_protected": false,  
        "interface": [ ] 
    }
    
    The request example of SparkScript job:
    { 
        "name": "my-sparkscript-job",  
        "type": "SparkScript",  
        "description": "This is the SparkScript job template",  
        "mains": [
        "89e6a8bc-dde1-4053-97c1-72504f630dbf"
        ],  
        "libs": [ ],  
        "is_public": false,  
        "is_protected": false,  
        "interface": [ ] 
    }
  • Example response
    {
        "job": {
            "name": "my-mapreduce-job",
            "type": "MapReduce",
            "description": "This is the Map Reduce job template",
            "mains": [],
            "libs": [
                {
                    "name": "my-job-binary-666",
                    "url": "/simple/mapreduce/program",
                    "description": "this is the job binary template",
                    "id": "2628d0e4-6109-4a09-a338-c4ee1b0963ed",
                    "tenant_id": "5a3314075bfa49b9ae360f4ecd333695",
                    "is_public": false,
                    "is_protected": false,
                    "extra": null
                }
            ],
            "created_at": "2017-06-22T09:39:13",
            "updated_at": "2017-06-22T09:39:13",
            "id": "38a04cba-c113-4868-b11f-f50e8b1bf252",
            "tenant_id": "5a3314075bfa49b9ae360f4ecd333695",
            "is_public": false,
            "is_protected": false,
            "interface": []
        }
    }

Status Code

Table 4 describes the status code of this API.

Table 4 Status code

Status code

Description

202

The job object has been successfully created.

For the description about error status codes, see Status Codes.