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-11-20 GMT+08:00

Ejecución de un trabajo de Flink

Puede enviar programas desarrollados por usted mismo a MRS para ejecutarlos y obtener los resultados. Esta sección describe cómo enviar un trabajo de Flink en la consola de gestión de MRS. Los trabajos de Flink se utilizan para enviar programas JAR para procesar datos de streaming.

Prerrequisitos

Ha cargado los paquetes de programas y archivos de datos necesarios para ejecutar trabajos en OBS o HDFS.

Enviar un trabajo en la GUI

  1. Inicie sesión en la consola de MRS.
  2. Elija Clusters > Active Clusters y seleccione un clúster en ejecución y haga clic en su nombre para cambiar a la página de detalles del clúster.
  3. Si la autenticación de Kerberos está habilitada para el clúster, realice los siguientes pasos. Si la autenticación de Kerberos no está habilitada para el clúster, omita este paso.

    En el área Basic Information de la página Dashboard, haga clic en Synchronize en el lado derecho de IAM User Sync para sincronizar usuarios de IAM. Para más detalles, consulte Sincronización de usuarios de IAM a MRS.

    • Cuando la política del grupo de usuarios al que pertenece el usuario de IAM cambia de MRS ReadOnlyAccess a MRS CommonOperations, MRS FullAccess o MRS Administrator, esperar 5 minutos hasta que la nueva política entre en vigor una vez completada la sincronización, ya que la caché SSSD de los nodos del clúster necesita tiempo para actualizarse. Luego, envíe un trabajo. De lo contrario, es posible que el trabajo no se envíe.
    • Cuando la política del grupo de usuarios al que pertenece el usuario de IAM cambia de MRS CommonOperations, MRS FullAccess o MRS Administrator a MRS ReadOnlyAccess, esperar 5 minutos hasta que la nueva política entre en vigor una vez completada la sincronización porque la caché SSSD de los nodos del clúster necesita tiempo para actualizarse.

  4. Haga clic en la pestaña Jobs.
  5. Haga clic en Create. Se muestra la página Create Job.
  6. Ajusta Type a Flink. Configure la información del trabajo de Flink haciendo referencia a Tabla 1.

    Tabla 1 Información de configuración del trabajo

    Parámetro

    Descripción

    Name

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

    NOTA:

    Se recomienda establecer diferentes nombres para diferentes trabajos.

    Program Path

    Ruta del paquete de programa que se va a ejecutar. Se deben cumplir los siguientes requisitos:

    • Contiene un máximo de 1,023 caracteres, sin incluir caracteres especiales como ;|&><'$. El valor del parámetro no puede estar vacío ni lleno de espacios.
    • La ruta del programa a ejecutar se puede almacenar en HDFS u OBS. La ruta de acceso varía según el sistema de archivos.
      • OBS: La ruta debe comenzar con obs://. Ejemplo: obs://wordcount/program/xxx.jar (Compatible con MRS 3.x o posterior)
      • HDFS: La ruta debe comenzar con /user. Para obtener más información sobre cómo importar datos a HDFS, consulte Importación de datos.
    NOTA:
    Si utiliza una ruta de acceso OBS que comienza por obs://, configure los permisos para acceder a OBS de la siguiente manera:
    • Si la función de control de permisos de OBS está habilitada durante la creación del clúster, puede utilizar el directorio obs:// sin configuración adicional.
    • Si la función de control de permisos OBS no está habilitada o no está disponible durante la creación del clúster, realice los siguientes pasos:
      1. En la página de detalles del clúster de MRS, haga clic en la pestaña Nodes y expanda un grupo de nodos.
      2. Haga clic en un nombre de nodo para ir a la consola del servidor en la nube.
      3. Haga clic en a la derecha de Agency y seleccione MRS_ECS_DEFAULT_AGENCY y agréguelo.
      4. Repita los pasos anteriores para agregar agencias para todos los nodos del clúster.

    Program Parameter

    (Opcional) Se utiliza para configurar parámetros de optimización como subprocesos, memoria y vCPU para el trabajo a fin de optimizar el uso de recursos y mejorar el rendimiento de la ejecución del trabajo.

    Tabla 2 describe los parámetros comunes de un programa en ejecución.

    Parameters

    (Opcional) 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. Múltiples parámetros están separados por espacio.

    El parámetro contiene un máximo de 150,000 caracteres. No puede contener caracteres especiales ;|&><'$, pero puede dejarse en blanco.

    ATENCIÓN:

    Si introduce un parámetro con información confidencial (como la contraseña de inicio de sesión), el parámetro puede estar expuesto en la pantalla de detalles del trabajo y en la impresión del registro. Tenga cuidado al realizar esta operación.

    Service Parameter

    (Opcional) Se utiliza para modificar los parámetros de servicio para el trabajo. La modificación del parámetro sólo se aplica al trabajo actual. Para hacer que la modificación surta efecto permanentemente para el clúster, siga las instrucciones en Configuración de parámetros de servicio.

    Para agregar varios parámetros, haga clic en a la derecha. Para eliminar un parámetro, haga clic en Delete a la derecha.

    Tabla 3 describe los parámetros comunes de un servicio.

    Command Reference

    Comando enviado en segundo plano para su ejecución cuando se envía un trabajo.

    Tabla 2 Parámetros del programa

    Parámetro

    Descripción

    Valor de ejemplo

    -ytm

    Tamaño de memoria de cada contenedor de TaskManager. (Unidad opcional. La unidad es MB de forma predeterminada.)

    1024

    -yjm

    Tamaño de memoria del contenedor de JobManager. (Unidad opcional. La unidad es MB de forma predeterminada.)

    1024

    -yn

    Número de contenedores de Yarn asignados a las aplicaciones. El valor es el mismo que el número de TaskManagers.

    2

    -ys

    Número de núcleos de TaskManager.

    2

    -ynm

    Nombre personalizado de una aplicación en Yarn.

    test

    -c

    Clase del punto de entrada del programa (por ejemplo, el método main o getPlan()). Este parámetro solo se requiere cuando el archivo JAR no especifica la clase de su manifiesto.

    com.bigdata.mrs.test

    Para MRS 3.x o posterior, el parámetro -yn no es compatible.

    Tabla 3 Parámetros del servicio

    Parámetro

    Descripción

    Valor de ejemplo

    fs.obs.access.key

    ID de clave para acceder a OBS.

    -

    fs.obs.secret.key

    Clave correspondiente al ID de clave para acceder a OBS.

    -

  7. Confirme la información de configuración del trabajo y haga clic en OK.

    Después de crear el trabajo, puede gestionarlo.

Envío de un trabajo en segundo plano

  1. Inicie sesión en el cliente de MRS.
  2. Ejecute el siguiente comando para inicializar variables de entorno:

    source /opt/Bigdata/client/bigdata_env

  3. Si la autenticación de Kerberos está habilitada para el clúster, realice los siguientes pasos. Si la autenticación de Kerberos no está habilitada para el clúster, omita este paso.

    1. Prepare un usuario para enviar trabajos de Flink.
    2. Inicie sesión en Manager como el usuario recién creado.
      • Para MRS 3.x anterior: Inicie sesión en Manager del clúster. Elija System > Manage User. En la columna Operation de la fila que contiene el usuario agregado, elija More > Download authentication credential para localizar la fila que contiene el usuario.
      • Para MRS 3.x o posterior: Inicie sesión en el Manager del clúster. Elija System >Permission >Manage User. En la página mostrada, busque la fila que contiene el usuario agregado, haga clic en More en la columna Operation y seleccione Download authentication credential.
    3. Descomprima el paquete de credenciales de autenticación descargado y copie el archivo obtenido en un directorio en el nodo cliente, por ejemplo /opt/Bigdata/client/Flink/flink/conf. Si el cliente está instalado en un nodo fuera del clúster, copie el archivo obtenido en el directorio /etc/ de este nodo.
    4. Para MRS 3.x o posterior: En modo de seguridad, agregue la dirección IP del servicio del nodo donde está instalado el cliente y la dirección IP flotante de Manager al elemento de configuración jobmanager.web.allow-access-address en el archivo /opt/Bigdata/client/Flink/flink/conf/flink-conf.yaml.
    5. Ejecute los siguientes comandos para configurar la autenticación de seguridad agregando la ruta keytab y el nombre de usuario al archivo de configuración /opt/Bigdata/client/Flink/flink/conf/flink-conf.yaml.
      security.kerberos.login.keytab: <user.keytab file path>
      security.kerberos.login.principal: <Username>

      Ejemplo:

      security.kerberos.login.keytab: /opt/Bigdata/client/Flink/flink/conf/user.keytab
      security.kerberos.login.principal: test
    6. En el directorio bin del cliente de Flink, ejecute el siguiente comando para realizar el refuerzo de seguridad. A continuación, establezca una contraseña para enviar trabajos.

      sh generate_keystore.sh

      Este script reemplaza automáticamente el valor SSL en el archivo /opt/Bigdata/client/Flink/flink/conf/flink-conf.yaml. Para MRS 3.x o versiones anteriores, SSL externo está deshabilitado de forma predeterminada en los clústeres de seguridad. Para habilitar SSL externo, vuelva a ejecutar este script después de la configuración. Los parámetros de configuración no existen en la configuración predeterminada de Flink de MRS, si habilita SSL para conexiones externas, debe agregar los parámetros enumerados en Tabla 4.

      Tabla 4 Descripción de parámetros

      Parámetro

      Valor de ejemplo

      Descripción

      security.ssl.rest.enabled

      true

      Interruptor para habilitar SSL externo.

      security.ssl.rest.keystore

      ${path}/flink.keystore

      Ruta de acceso para almacenar keystore.

      security.ssl.rest.keystore-password

      123456

      Contraseña del keystore. 123456 indica que se requiere una contraseña definida por el usuario.

      security.ssl.rest.key-password

      123456

      Contraseña de la clave SSL. 123456 indica que se requiere una contraseña definida por el usuario.

      security.ssl.rest.truststore

      ${path}/flink.truststore

      Ruta de acceso para almacenar el truststore.

      security.ssl.rest.truststore-password

      123456

      Contraseña del truststore. 123456 indica que se requiere una contraseña definida por el usuario.

      • Para MRS 3.x o anterior: El script generate_keystore.sh se genera automáticamente.
      • Los elementos flink.keystore, flink.truststore y security.cookie generados se rellenan automáticamente en los elementos de configuración correspondientes de flink-conf.yaml.
      • Para MRS 3.x o posterior: Puede obtener los valores de security.ssl.key-password, security.ssl.keystore-password, and security.ssl.truststore-password mediante la API de cifrado de texto no cifrado de Manager ejecutando el siguiente comando:

        curl -k -i -u <user name>:<password> -X POST -HContent-type:application/json -d '{"plainText":"<password>"}' 'https://x.x.x.x:28443/web/api/v2/tools/encrypt'; En el comando anterior, <password> debe ser la misma que la contraseña utilizada para emitir el certificado, y x.x.x.x indica la dirección IP flotante del Manager en el clúster.

    7. Configure las rutas para que el cliente acceda a los archivos flink.keystore y flink.truststore.
      • Ruta absoluta: Después de ejecutar el script, la ruta del archivo de flink.keystore y flink.truststore se establece automáticamente en la ruta absoluta opt/Bigdata/client/Flink/flink/conf/ en el archivo flink-conf.yaml. En este caso, debe mover los archivos flink.keystore y flink.truststore desde el directorio conf a esta ruta absoluta en el cliente de Flink y los nodos de Yarn.
      • Ruta relativa: Realice los siguientes pasos para establecer la ruta del archivo de flink.keystore y flink.truststore a la ruta relativa y asegúrese de que el directorio donde se ejecuta el comando Flink client puede acceder directamente a las rutas relativas.
        1. En el directorio /opt/Bigdata/client/Flink/flink/conf/, cree un nuevo directorio, por ejemplo, ssl.
        2. Mueva el archivo flink.keystore y flink.truststore al directorio /opt/Bigdata/client/Flink/flink/conf/ssl/.
        3. Para MRS 3.x o posterior: Cambie los valores de los siguientes parámetros en el archivo flink-conf.yaml a rutas relativas:
          security.ssl.keystore: ssl/flink.keystore
          security.ssl.truststore: ssl/flink.truststore
        4. Para MRS 3.x o anterior: Cambie los valores de los siguientes parámetros en el archivo flink-conf.yaml a rutas relativas:
          security.ssl.internal.keystore: ssl/flink.keystore
          security.ssl.internal.truststore: ssl/flink.truststore
    8. Si el cliente está instalado en un nodo fuera del clúster, agregue la siguiente configuración al archivo de configuración (por ejemplo, /opt/Bigdata/client/Flink/fink/conf/flink-conf.yaml). Reemplace xx.xx.xxx.xxx con la dirección IP del nodo donde reside el cliente.
      web.access-control-allow-origin: xx.xx.xxx.xxx
      jobmanager.web.allow-access-address: xx.xx.xxx.xxx

  4. Ejecute un trabajo de wordcount.

    • Clúster normal (autenticación de Kerberos desactivada)
      • Ejecute los siguientes comandos para iniciar una sesión y enviar un trabajo en la sesión:
        yarn-session.sh -nm "session-name" -d
        flink run /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar
      • Ejecute el siguiente comando para enviar un solo trabajo en Yarn:
        flink run -m yarn-cluster /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar
    • Clúster de seguridad (autenticación de Kerberos habilitada)
      • Si el archivo flink.keystore y flink.truststore se almacenan en la ruta absoluta:
        • Ejecute los siguientes comandos para iniciar una sesión y enviar un trabajo en la sesión:
          yarn-session.sh -nm "session-name" -d
          flink run /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar
        • Ejecute el siguiente comando para enviar un solo trabajo en Yarn:
          flink run -m yarn-cluster /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar
      • Si el archivo flink.keystore y flink.truststore se almacenan en la ruta relativa:
        • En el mismo directorio de SSL, ejecute el siguiente comando para iniciar una sesión y enviar trabajos en la sesión. El directorio SSL es una ruta relativa. Por ejemplo, si el directorio SSL es de opt/Bigdata/client/Flink/flink/conf/, ejecute el siguiente comando en este directorio:
          yarn-session.sh -t ssl/ -nm "session-name" -d
          flink run /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar
        • Ejecute el siguiente comando para enviar un solo trabajo en Yarn:
          flink run -m yarn-cluster -yt ssl/ /opt/Bigdata/client/Flink/flink/examples/streaming/WordCount.jar