Compartir vía


Administración de trabajos de Apache Flink® en clústeres de HDInsight en AKS

Importante

Esta funcionalidad actualmente está en su versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.

HDInsight en AKS proporciona una característica para administrar y enviar trabajos de Apache Flink® directamente a través de Azure Portal (interfaz fácil de usar) y la API de REST de ARM.

Esta característica permite a los usuarios controlar y supervisar eficazmente sus trabajos de Apache Flink sin que sea necesario un conocimiento de nivel de clúster profundo.

Ventajas

  • Administración de trabajos simplificada: con la integración nativa de Apache Flink en Azure Portal, ya no es necesario que los usuarios tengan amplios conocimientos de los clústeres de Flink para enviar, administrar y supervisar trabajos.

  • API REST fácil de usar: HDInsight on AKS proporciona API REST de ARM fáciles de usar para enviar y administrar trabajos de Flink. Los usuarios pueden enviar trabajos de Flink desde cualquier servicio de Azure mediante estas API REST.

  • Administración de estados y actualizaciones de trabajo sin esfuerzo: la integración de Azure Portal nativa proporciona una experiencia sin problemas para actualizar trabajos y restaurarlos a su último estado guardado (punto de retorno). Esta funcionalidad garantiza la continuidad y la integridad de datos a lo largo del ciclo de vida de trabajo.

  • Automatización del trabajo de Flink mediante Azure Pipeline: con HDInsight on AKS, los usuarios de Flink tienen acceso a API REST de ARM fáciles de usar y puede integrar sin problemas las operaciones de trabajo de Flink en su instancia de Azure Pipelines. Tanto si va a iniciar nuevos trabajos, actualizar trabajos en ejecución o realizar varias operaciones de trabajo, este enfoque simplificado elimina los pasos manuales. Le permite administrar el clúster de Flink de forma eficaz.

Requisitos previos

Hay algunos requisitos previos antes de enviar y administrar trabajos desde el portal o las API REST.

  • Cree un directorio en la cuenta de almacenamiento principal del clúster para cargar el archivo JAR del trabajo.

  • Si el usuario quiere tomar puntos de retorno, cree un directorio en la cuenta de almacenamiento para los puntos de retorno del trabajo.

    Captura de pantalla que muestra la estructura del directorio.

Características y operaciones principales

  • Envío de trabajo nuevo: los usuarios pueden enviar sin esfuerzo un nuevo Flink, lo que elimina la necesidad de configuraciones complejas o herramientas externas.

  • Detener e iniciar trabajos con puntos de retorno: los usuarios pueden detener e iniciar correctamente sus trabajos de Flink desde su estado anterior (punto de retorno). Los puntos de retorno garantizan que se conserve el progreso del trabajo, lo que permite llevar a cabo reanudaciones sin problemas.

  • Actualizaciones de trabajo: el usuario puede actualizar el trabajo en ejecución después de actualizar el archivo JAR en la cuenta de almacenamiento. Esta actualización toma automáticamente el punto de retorno e inicia el trabajo con un nuevo archivo JAR.

  • Actualizaciones sin estado: realizar un reinicio nuevo para un trabajo se simplifica mediante actualizaciones sin estado. Esta característica permite a los usuarios iniciar un reinicio limpio mediante el archivo JAR del trabajo actualizado.

  • Administración de puntos de retorno: en cualquier momento dado, los usuarios pueden crear puntos de retorno para sus trabajos en ejecución. Estos puntos de retorno se pueden enumerar y usar para reiniciar el trabajo desde un punto de control específico según sea necesario.

  • Cancelar: cancela el trabajo de forma permanente.

  • Eliminar: elimina el registro del historial de trabajos.

Opciones para administrar trabajos en HDInsight on AKS

HDInsight on AKS proporciona formas de administrar trabajos de Flink.

Administración de trabajos desde Azure Portal

Para ejecutar el trabajo de Flink desde el portal, vaya a:

Portal --> Grupo de clústeres de HDInsight on AKS --> Clúster de Flink --> Configuración --> Trabajos de Flink

Captura de pantalla que muestra cómo ejecutar el trabajo

  • Nuevo trabajo: para enviar un nuevo trabajo, cargue los archivos JAR del trabajo en la cuenta de almacenamiento y cree un directorio de punto de retorno. Complete la plantilla con las configuraciones necesarias y, a continuación, envíe el trabajo.

    Captura de pantalla que muestra cómo crear un nuevo trabajo.

    Detalles de propiedades:

    Propiedad Descripción Valor predeterminado Obligatorio
    Nombre del trabajo Nombre único para el trabajo. Aparece en el portal. El nombre del trabajo debe estar en letras minúsculas.
    Ruta de acceso del archivo JAR Ruta de acceso de almacenamiento del archivo JAR del trabajo. Los usuarios deben crear el directorio en el almacenamiento de clúster y cargar el archivo JAR del trabajo.
    Clase de entrada Clase de entrada para el trabajo desde la que se inicia la ejecución de este.
    Args Argumento para el programa principal del trabajo. Separe todos los argumentos con espacios. No
    grado Paralelismo de Flink del trabajo. 2
    savepoint.directory Directorio de punto de retorno del trabajo. Se recomienda que los usuarios creen un nuevo directorio para el punto de retorno del trabajo en la cuenta de almacenamiento. abfs://<container>@<account>/<deployment-ID>/savepoints No

    Una vez iniciado el trabajo, el estado del trabajo del portal es EN EJECUCIÓN.

  • Detener: Detener trabajo no requería ningún parámetro, el usuario puede detener el trabajo seleccionando la acción.

    Captura de pantalla que muestra cómo el usuario puede detener el trabajo.

    Una vez detenido el trabajo, el estado del trabajo del portal es DETENIDO.

  • Iniciar: esta acción inicia el trabajo desde el punto de retorno. Para iniciar el trabajo, seleccione el trabajo detenido e inícielo.

    Captura de pantalla que muestra cómo el usuario inicia el trabajo.

    Rellene la plantilla de flujo con las opciones necesarias e inícielo. Los usuarios deben seleccionar el punto de retorno desde el que el usuario quiere iniciar el trabajo. De manera predeterminada, toma el último punto de retorno correcto.

    Captura de pantalla que muestra cómo rellenar la plantilla de flujo.

    Detalles de propiedades:

    Propiedad Descripción Valor predeterminado Obligatorio
    Args Argumento para el programa principal del trabajo. Todos los argumentos deben estar separados por un espacio. No
    Último punto de retorno Último punto de retorno tomado antes de detener el trabajo. Se usará de forma predeterminada si no se selecciona ningún punto de retorno. No editable
    Nombre del punto de retorno Los usuarios pueden enumerar el punto de retorno disponible para el trabajo y seleccionar uno para iniciar este. No

    Una vez iniciado el trabajo, el estado del trabajo del portal será EN EJECUCIÓN.

  • Actualizar: Actualizar ayuda a reiniciar trabajos con código de trabajo actualizado. Los usuarios deben actualizar el archivo JAR del trabajo más reciente en la ubicación de almacenamiento y actualizar el trabajo desde el portal. Esta actualización detiene el trabajo con el punto de retorno y se inicia de nuevo con el archivo JAR más reciente.

    Captura de pantalla que muestra cómo reiniciar trabajos con código de trabajo actualizado.

    Plantilla para actualizar el trabajo.

    Captura de pantalla que muestra la plantilla para actualizar el trabajo.

    Una vez actualizado el trabajo, el estado del trabajo del portal es "EN EJECUCIÓN".

  • Actualización sin estado: este trabajo es como una actualización, pero implica un reinicio nuevo del trabajo con el código más reciente.

    Captura de pantalla que muestra el reinicio nuevo del trabajo con el código más reciente.

    Plantilla para actualizar el trabajo.

    Captura de pantalla que muestra la plantilla para actualizar el trabajo sin estado.

    Detalles de propiedades:

    Propiedad Descripción Valor predeterminado Obligatorio
    Args Argumento para el programa principal del trabajo. Separe todos los argumentos con un espacio. No

    Una vez actualizado el trabajo, el estado del trabajo del portal es EN EJECUCIÓN.

  • Punto de retorno: tome el punto de retorno para el trabajo de Flink.

    Captura de pantalla que muestra el punto de retorno para el trabajo de Flink.

    El punto de retorno es un proceso que requiere mucho tiempo y lleva algo de tiempo. Puede ver el estado de la acción del trabajo como En curso.

    Captura de pantalla que muestra el estado de la acción del trabajo.

  • Cancelar: este trabajo ayuda al usuario a finalizar el trabajo.

    Captura de pantalla que muestra cómo el usuario puede finalizar el trabajo.

  • Eliminar: elimina los datos del trabajo del portal.

    Captura de pantalla que muestra cómo el usuario puede eliminar datos de trabajo desde el portal.

  • Ver detalles del trabajo: para ver los detalles del trabajo, el usuario puede hacer clic en el nombre del trabajo. Proporciona los detalles sobre el trabajo y el resultado de la última acción.

    Captura de pantalla que muestra cómo ver los detalles del trabajo.

    Para cualquier acción con errores, este JSON del trabajo proporciona excepciones detalladas y motivos de los errores.

Administración de trabajos mediante la API REST

HDInsight en AKS admite API de REST de ARM fáciles de usar para enviar y administrar trabajos. Con esta API REST de Flink, puede integrar sin problemas las operaciones de trabajo de Flink en su instancia de Azure Pipelines. Tanto si va a iniciar nuevos trabajos, actualizar trabajos en ejecución o realizar varias operaciones de trabajo, este enfoque simplificado elimina los pasos manuales y le permite administrar su clúster de Flink de forma eficaz.

Formato de URL base para la API REST

Consulte la siguiente dirección URL para la API de Rest, los usuarios deben reemplazar la suscripción, el grupo de recursos, el grupo de clústeres, el nombre del clúster y HDInsight en la versión de la API de AKS en este artículo antes de usarlo. https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runjob?api-version={{API_VERSION}}

Con esta API REST, los usuarios pueden iniciar nuevos trabajos, detener trabajos, iniciar trabajos, crear puntos de retorno, cancelar trabajos y eliminar trabajos. La API_VERSION actual es 2023-06-01-preview.

Autenticación de API REST

Para autenticar a los usuarios de la API REST de ARM de Flink, debe obtener el token de portador o el token de acceso para el recurso de ARM. Para autenticar la API REST de Azure ARM (Azure Resource Manager) mediante una entidad de servicio, puede seguir estos pasos generales:

  • Creación de una entidad de servicio.

    az ad sp create-for-rbac --name <your-SP-name>

  • Concesión de permiso de propietario a la entidad de servicio para el clúster flink.

  • Inicio de sesión con la entidad de servicio.

    az login --service-principal -u <client_id> -p <client_secret> --tenant <tenant_id>

  • Obtención de token de acceso.

    $token = az account get-access-token --resource=https://management.azure.com/ | ConvertFrom-Json

    $tok = $token.accesstoken

    Los usuarios pueden usar el token en la dirección URL que se muestra.

    $data = Invoke-RestMethod -Uri $restUri -Method GET -Headers @{ Authorization = "Bearer $tok" }

Autenticación mediante Identidad administrada: los usuarios pueden usar recursos que admitan Identidad administrada para realizar llamadas a la API REST del trabajo. Para más información, consulte la documentación sobre Identidad administrada.

LISTA de API y parámetros

  • Nuevo trabajo: API REST para enviar un nuevo trabajo a Flink.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud:

    { 
        "properties": { 
            "jobType": "FlinkJob", 
            "jobName": "<JOB_NAME>", 
            "action": "NEW", 
            "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", 
            "jarName": "<JOB_JAR_NAME>", 
            "entryClass": "<JOB_ENTRY_CLASS>", 
            “args”: ”<JOB_JVM_ARGUMENT>”
            "flinkConfiguration": { 
                "parallelism": "<JOB_PARALLELISM>", 
                "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>" 
            } 
         } 
    }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre único para el trabajo. Aparece en el portal. El nombre del trabajo debe estar en letras minúsculas.
    action Indica el tipo de operación en el trabajo. Debe ser “NEW” siempre para el nuevo inicio del trabajo.
    jobJarDirectory Ruta de acceso de almacenamiento del directorio JAR del trabajo. Los usuarios deben crear el directorio en el almacenamiento de clúster y cargar el archivo JAR del trabajo.
    jarName Nombre del archivo JAR del trabajo.
    entryClass Clase de entrada para el trabajo desde la que se inicia la ejecución de este.
    args Argumento para el programa principal del trabajo. Separe todos los argumentos con un espacio. No
    grado Paralelismo de Flink del trabajo. 2
    savepoint.directory Directorio de punto de retorno del trabajo. Se recomienda que los usuarios creen un nuevo directorio para el punto de retorno del trabajo en la cuenta de almacenamiento. abfs://<container>@<account>/<deployment-ID>/savepoints No

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Detener trabajo: API REST para detener el trabajo en ejecución actual.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

       {
          "properties": {
            "jobType": "FlinkJob",
            "jobName": "<JOB_NAME>",
            "action": "STOP"
          }
        }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo, que se usa para iniciar este
    action Debe ser “STOP”

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Iniciar trabajo: API REST para iniciar el trabajo DETENIDO.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

       {
          "properties": {
             "jobType": "FlinkJob",
             "jobName": "<JOB_NAME>",
             "action": "START",
             "savePointName": "<SAVEPOINT_NAME>"
          }
        }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser “START”
    savePointName Nombre del punto de retorno para iniciar el trabajo. Es una propiedad opcional, de manera predeterminada, la operación de inicio toma el último punto de guardado correcto. No

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Actualizar trabajo: API REST para actualizar el trabajo en ejecución actual.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "UPDATE",
              “args” : “<JOB_JVM_ARGUMENT>”,
              "savePointName": "<SAVEPOINT_NAME>"
          }
      }
    
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser “UPDATE” siempre para el nuevo inicio del trabajo.
    args Argumentos de JVM del trabajo No
    savePointName Nombre del punto de retorno para iniciar el trabajo. Es una propiedad opcional, de manera predeterminada, la operación de inicio tomará el último punto de guardado correcto. No

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Trabajo de actualización sin estado: API REST para la actualización sin estado.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "STATELESS_UPDATE",
              “args” : “<JOB_JVM_ARGUMENT>”
          }
      }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser “STATELESS_UPDATE” siempre para el nuevo inicio del trabajo.
    args Argumentos de JVM del trabajo No

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Punto de retorno: API REST para desencadenar el punto de retorno para el trabajo.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "SAVEPOINT"
          }
      }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser “SAVEPOINT” siempre para el nuevo inicio del trabajo.

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Enumerar punto de retorno: API REST para enumerar todos los puntos de retorno del directorio de punto de retorno.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "LIST_SAVEPOINT"
          }
      }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este
    action Debe ser “LIST_SAVEPOINT”

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Cancelar: API REST para cancelar el trabajo.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "CANCEL"
          }
      }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser FlinkJob
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser CANCEL.

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Eliminar: API REST para eliminar el trabajo.

    Opción Valor
    método PUBLICAR
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Cuerpo de la solicitud

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "DELETE"
          }
      }
    

    Detalles de la propiedad para el cuerpo JSON:

    Propiedad Descripción Valor predeterminado Obligatorio
    jobType Tipo de trabajo. Debe ser “FlinkJob”
    jobName Nombre del trabajo que se usa para iniciar este.
    action Debe ser DELETE.

    Ejemplo:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Enumerar trabajos: API REST para enumerar todos los trabajos y estados de la acción actual.

    Opción Valor
    Método OBTENER
    URL https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs?api-version={{API_VERSION}}
    Encabezado Autorización = "$token de portador"

    Salida:

    { 
      "value": [ 
          { 
              "id": "/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs/job1", 
              "properties": { 
                  "jobType": "FlinkJob", 
                  "jobName": "job1", 
                  "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", 
                  "jarName": "<JOB_JAR_NAME>", 
                  "action": "STOP", 
                  "entryClass": "<JOB_ENTRY_CLASS>", 
                  "flinkConfiguration": { 
                      "parallelism": "2", 
                      "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s" 
                  }, 
                  "jobId": "20e9e907eb360b1c69510507f88cdb7b", 
                  "status": "STOPPED", 
                  "jobOutput": "Savepoint completed. Path: <JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5", 
                  "actionResult": "SUCCESS", 
                  "lastSavePoint": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5" 
          } 
       }
      ]
    }
    

Nota:

Cuando haya alguna acción en curso, actionResult lo indicará con el valor "IN_PROGRESS". Una vez se haya completado correctamente, mostrará "SUCCESS" y, en caso de error, será "FAILED".

Referencia