Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-07-28 GMT+08:00

Adición y ejecución de un trabajo (obsoleto)

Función

Esta API se utiliza para agregar un trabajo a un clúster MRS y ejecutar el trabajo. Esta API es incompatible con Sahara.

URI

  • Formato

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

  • Descripción de parámetro
    Tabla 1 Parámetros de URI

    Parámetro

    Obligatorio

    Descripción

    project_id

    El ID del proyecto. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.

Parámetros de solicitud

Tabla 2 Parámetros de solicitud

Parámetro

Obligatorio

Tipo

Descripción

job_type

Integer

Código de tipo de trabajo

  • 1: MapReduce
  • 2: Spark
  • 3: Hive Script
  • 4: HiveQL (no soportado actualmente)
  • 5 DistCp: importar y exportar datos. Para obtener más información, consulte Tabla 3.
  • 6: Spark Script
  • 7: Spark SQL, envío de sentencias Spark SQL. Para obtener más información, consulte Tabla 4. (Actualmente no es compatible con esta API.)
    NOTA:

    Los trabajos de Spark y Hive sólo se pueden agregar a clústeres que incluyan componentes de Spark y Hive.

job_name

String

Nombre del trabajo

Contiene solo de 1 a 64 letras, dígitos, guiones (-) y guiones bajos (_).

NOTA:

Se permiten nombres de trabajo idénticos pero no se recomiendan.

cluster_id

String

ID del clúster

jar_path

String

Ruta del archivo JAR o SQL para la ejecución del programa

El parámetro debe cumplir los siguientes requisitos:

  • Contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&><'$. La dirección no puede estar vacía o llena de espacios.
  • Comienza con / y s3a://. La ruta de acceso OBS no admite archivos o programas cifrados por KMS.
  • Spark Script debe terminar con .sql mientras que MapReduce y Spark Jar deben terminar con .jar.sql y jar son insensibles a mayúsculas y minúsculas.

arguments

No

String

Parámetro clave para la ejecución del programa. El parámetro es especificado por la función del programa del usuario. MRS solo es responsable de cargar el parámetro.

El parámetro contiene un máximo de 2047 caracteres, sin incluir caracteres especiales como ;|&>'<$, y se puede dejar en blanco.

NOTA:

Al introducir un parámetro que contiene información confidencial (por ejemplo, contraseña de inicio de sesión), puede agregar un (@) de signo antes del nombre del parámetro para cifrar el valor del parámetro. Esto evita que la información sensible se mantenga en texto plano. Por lo tanto, cuando vea la información del trabajo en el MRS, la información confidencial se mostrará como asteriscos (*).

Por ejemplo, username=admin @password=admin_123.

input

No

String

Ruta de entrada de datos, que debe comenzar con / o s3a://. Establezca este parámetro en una ruta de OBS correcta. La ruta de acceso OBS no admite archivos o programas cifrados por KMS.

El parámetro contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&>'<$, y se puede dejar en blanco.

output

No

String

Ruta de salida de datos, que debe comenzar con / o s3a://. Se requiere una ruta de OBS correcta. Si la ruta no existe, el sistema la crea automáticamente.

El parámetro contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&>'<$, y se puede dejar en blanco.

job_log

No

String

Ruta de acceso para almacenar registros de trabajos que registran el estado de ejecución del trabajo. La ruta debe comenzar con / o s3a://. Se requiere una ruta de OBS correcta.

El parámetro contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&>'<$, y se puede dejar en blanco.

hive_script_path

String

Ruta del programa SQL

Este parámetro es necesario únicamente para los trabajos de Spark Script y Hive Script, y debe cumplir los siguientes requisitos:

  • Contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&><'$. La dirección no puede estar vacía o llena de espacios.
  • La ruta debe comenzar con / o s3a://. La ruta de acceso OBS no admite archivos o programas cifrados por KMS.
  • La ruta debe terminar con .sql.sql es insensible a mayúsculas y minúsculas.
Tabla 3 Parámetros de DistCp

Parámetro

Obligatorio

Tipo

Descripción

job_name

String

Nombre del trabajo

Contiene solo de 1 a 64 letras, dígitos, guiones (-) y guiones bajos (_).

NOTA:

Se permiten nombres de trabajo idénticos pero no se recomiendan.

input

No

String

Ruta de origen de datos

  • Cuando importa datos, el parámetro se establece en una ruta OBS. Los archivos o programas cifrados por KMS no son compatibles.
  • Al exportar datos, el parámetro se establece en una ruta HDFS.

output

No

String

Ruta de recepción de datos

  • Al importar datos, el parámetro se establece en una ruta HDFS.
  • Al exportar datos, el parámetro se establece en una ruta de acceso OBS.

file_action

String

Tipos de operaciones de archivo, que incluyen:

  • exportar: Exportar datos de HDFS a OBS.
  • import: Importar datos de OBS a HDFS.
Tabla 4 Parámetros de Spark SQL

Parámetro

Obligatorio

Tipo

Descripción

hql

String

Sentencia Spark SQL, que necesita codificación y decodificación de Base64. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ es una tabla de codificación estándar. MRS utiliza ABCDEFGHILKJMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ para la codificación de Base64. El valor del parámetro hql se genera agregando cualquier letra al principio de la cadena de caracteres codificada. La sentencia Spark SQL se genera decodificando el valor en segundo plano.

Ejemplo:

  1. Obtener la herramienta de codificación Base64.
  2. Introducir la sentencia SQL Spark show tables; en la herramienta de codificación para realizar la codificación Base64.
  3. Obtener la cadena de caracteres codificada c2hvdyB0YWLsZXM7.
  4. Al principio de c2hvdyB0YWLsZXM7, agregar cualquier letra, por ejemplo, g. Entonces, la cadena de caracteres se convierte en gc2hvdyB0YWLsZXM7, es decir, el valor del parámetro hql.

job_name

String

Nombre del trabajo. Contiene de 1 a 64 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_).

NOTA:

Se permiten nombres de trabajo idénticos pero no se recomiendan.

Parámetros de respuesta

Tabla 5 Parámetro de respuesta

Parámetro

Tipo

Descripción

job_execution

Object

Detalles del trabajo. Para obtener más información, consulte Tabla 6.

Tabla 6 parámetros de job_execution

Parámetro

Tipo

Descripción

templated

Bool

Si los objetos de ejecución de trabajos son generados por las plantillas de trabajo.

created_at

Integer

Tiempo de creación, que es una marca de tiempo de 10 bits.

updated_at

Integer

Tiempo de actualización, que es una marca de tiempo de 10 bits.

id

String

ID de trabajo

tenant_id

String

ID del proyecto. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.

job_id

String

ID de solicitud de empleo

job_name

String

Nombre del trabajo

input_id

String

ID de entrada de datos

output_id

String

ID de salida de datos

start_time

Integer

Hora de inicio de la ejecución del trabajo, que es una marca de tiempo de 10 bits.

end_time

Integer

Hora de finalización de la ejecución del trabajo, que es una marca de tiempo de 10 bits.

cluster_id

String

ID del clúster

engine_job_id

String

ID de flujo de trabajo de Oozie

return_code

Integer

Código devuelto para un resultado de ejecución

is_public

Bool

Si un trabajo es público

  • verdadero
  • falso

La versión actual no admite esta función.

is_protected

Bool

Si un trabajo está protegido

  • verdadero
  • falso

La versión actual no admite esta función.

group_id

String

ID de grupo de un trabajo

jar_path

String

Ruta de acceso del archivo .jar para la ejecución del programa

input

String

Dirección para introducir datos

output

String

Dirección para la salida de datos

job_log

String

Dirección para almacenar registros de trabajos

job_type

Integer

Código de tipo de trabajo

  • 1: MapReduce
  • 2: Spark
  • 3: Hive Script
  • 4: HiveQL (no soportado actualmente)
  • 5: DistCp
  • 6: Spark Script
  • 7: Spark SQL (actualmente no es compatible con esta API)

file_action

String

Importación y exportación de datos

arguments

String

Parámetro clave para la ejecución del programa. El parámetro es especificado por la función del programa interno del usuario. MRS solo es responsable de cargar el parámetro. Este parámetro puede estar vacío.

job_state

Integer

Código de estado del trabajo

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

job_final_status

Integer

Estado final del trabajo

  • 0: unfinished
  • 1: terminated due to an execution error
  • 2: executed successfully
  • 3: canceled

hive_script_path

String

Dirección del script Hive

create_by

String

ID de usuario para crear trabajos

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

finished_step

Integer

Número de pasos completados

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

job_main_id

String

ID principal de un trabajo

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

job_step_id

String

ID de paso de un trabajo

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

postpone_at

Integer

Tiempo de retardo, que es una marca de tiempo de 10 bits.

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

step_name

String

Nombre del paso de un trabajo

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

step_num

Integer

Número de pasos

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

task_num

Integer

Número de tareas

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

update_by

String

ID de usuario para actualizar trabajos

credentials

String

Token

La versión actual no admite esta función.

user_id

String

ID de usuario para crear trabajos

Este parámetro no se utiliza en la versión actual, pero se conserva por compatibilidad con versiones anteriores.

job_configs

String

Conjunto de par clave-valor para guardar configuraciones de ejecución de trabajos

extra

String

Información de autenticación

La versión actual no admite esta función.

data_source_urls

String

URL de origen de datos

info

String

Conjunto de pares clave-valor, que contiene información de ejecución de trabajos devuelta por Oozie

Ejemplo

  • Solicitud de ejemplo

    A continuación se muestra un ejemplo de una solicitud de trabajo de MapReduce:

    {
        "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": ""
    }

    Ejemplo de solicitud de un trabajo de Spark

    {
        "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": ""
    }

    Ejemplo de solicitud de un trabajo de Hive Script

    {
        "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"
    }

    Ejemplo de solicitud de un trabajo de DistCp para la importación

    {
        "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"
    }

    Example request for exporting a DistCp 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"
    }

    Ejemplo de solicitud de un trabajo de Spark Script

    {
        "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"
    }
  • Ejemplo de respuesta
    {
      "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": false,
        "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
      }
    }

Códigos de estado

Tabla 7 describe el código de estado.

Tabla 7 Código de estado

Código de estado

Descripción

200

Se ha agregado el trabajo.

Consulte Códigos de estado.