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 SparkSubmit o Spark

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 Spark en la consola de MRS.

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. Configurar la información del trabajo. Establezca en SparkSubmit y configure otros parámetros del trabajo SparkSubmit 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 en MRS 1.9.2 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.
    • Para SparkScript y HiveScript, el camino debe terminar con .sql. En el caso de MapReduce, la ruta debe terminar con .jar. Para Flink y SparkSubmit la ruta debe terminar con .jar o .py. El .sql, .jar y el .py no distinguen entre mayúsculas y minúsculas.

    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 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 muestra los parámetros de configuración de servicio comunes.

    NOTA:

    Si necesita ejecutar un trabajo a largo plazo, como SparkStreaming y acceder a OBS, debe usar Service Parameter para importar el AK/SK para acceder a OBS.

    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

    --conf

    Agregue los elementos de configuración de la tarea.

    spark.executor.memory=2G

    --driver-memory

    Establezca la memoria de ejecución del controlador.

    2G

    --num-executors

    Establezca el número de ejecutores que se iniciarán.

    5

    --executor-cores

    Establezca el número de núcleos del ejecutor.

    2

    --class

    Establezca la clase principal de una tarea.

    org.apache.spark.examples.SparkPi

    --files

    Suba archivos a una tarea. Los archivos pueden ser archivos de configuración personalizados o algunos archivos de datos de OBS o HDFS.

    -

    --jars

    Cargue paquetes de dependencias adicionales de una tarea para agregar los paquetes de dependencias externas a la tarea.

    -

    --executor-memory

    Establezca la memoria del ejecutor.

    2G

    --conf spark-yarn.maxAppAttempts

    Controle el número de reintentos de AM.

    Si este parámetro se establece en 0, no se permite volver a intentarlo. Si este parámetro se establece en 1, se permite un reintento.

    Tabla 3 Parámetros de Service Parameter

    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.

    -

    Tabla 4 Job configuration information

    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 s3a://. Ejemplo: s3a://wordcount/program/xxx.jar
      • 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.
    • En el caso de SparkScript, la ruta debe terminar con .sql. Para MapReduce y Spark, el camino debe terminar con .jar. El .sql y el .jar son insensibles a mayúsculas y minúsculas.

    Parameters

    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.

    Método de configuración: Package name.Class name

    El parámetro contiene un máximo de 150,000 caracteres. No puede contener caracteres especiales ;|&><'$, pero puede dejarse 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. Cuando se visualiza la información del trabajo en la consola MRS, la información confidencial se muestra como *.

    Ejemplo: username=admin @password=admin_123

    Import From

    Ruta para entrada de datos

    Los datos se pueden almacenar en HDFS u OBS. La ruta de acceso varía según el sistema de archivos.
    • OBS: La ruta debe comenzar con s3a://.
    • 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.

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

    Export To

    Ruta de salida de datos

    NOTA:
    • Al establecer este parámetro, seleccione OBS o HDFS. Seleccione un directorio de archivos o ingrese manualmente un directorio de archivos y haga clic en OK.
    • Si agrega el programa de ejemplo hadoop-mapreduce-examples-x.x.x.jar o un programa similar a hadoop-mapreduce-examples-x.x.x.jar, introduzca un directorio que no exista.
    Los datos se pueden almacenar en HDFS u OBS. La ruta de acceso varía según el sistema de archivos.
    • OBS: La ruta debe comenzar con s3a://.
    • HDFS: La ruta debe comenzar con /user.

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

    Log Path

    Ruta de acceso para almacenar registros de trabajos que registran el estado de ejecución del trabajo.

    Los datos se pueden almacenar en HDFS u OBS. La ruta de acceso varía según el sistema de archivos.
    • OBS: La ruta debe comenzar con s3a://.
    • HDFS: La ruta debe comenzar con /user.

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

  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. Cree un usuario para enviar trabajos. Para obtener más información, consulte Creación de un usuario.

    En este ejemplo, se ha creado un usuario máquina-máquina y se han asignado correctamente al usuario los grupos de usuarios (hadoop y supergroup), el grupo principal (supergroup) y los permisos de rol (System_administrator y default).

  2. Descargue la credencial de autenticación.

    • Para clústeres de MRS 3.x o posterior, inicie sesión en FusionInsight Manager y elija System > Permission > User. En la columna Operation del usuario recién creado, elija More > Download Authentication Credential.
    • Para los clústeres cuya versión es anterior a MRS 3.x, inicie sesión en MRS Manager y elija System > Manage User. En la columna Operation del usuario recién creado, elija More > Download Authentication Credential.

  3. Suba archivos de JAR relacionados con el trabajo al clúster. En este ejemplo, se utiliza el archivo de JAR de ejemplo construido en Spark. Se almacena en $SPARK_HOME/examples/jars.
  4. Suba la credencial de autenticación del usuario creado en 2 al directorio /opt del clúster y ejecuta el siguiente comando para descomprimir la credencial:

    tar –xvf MRSTest _xxxxxx_keytab.tar

    Obtendrás dos archivos: user.keytab y krb5.conf.

  5. Antes de realizar operaciones en el clúster, ejecute los siguientes comandos:

    source /opt/Bigdata/client/bigdata_env

    cd $SPARK_HOME

  6. Ejecute el siguiente comando para ejecutar el trabajo de Spark:

    ./bin/spark-submit --master yarn --deploy-mode client --conf spark.yarn.principal=MRSTest --conf spark.yarn.keytab=/opt/user.keytab --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2-mrs-2.0.jar 10

    Descripción de parámetros:

    1. Capacidad informática de Yarn, que especifica que el trabajo se envía en modo de cliente.
    2. Elemento de configuración del trabajo de Spark. El archivo de autenticación y el nombre de usuario se transfieren aquí.
    3. spark.yarn.principal: usuario creado en paso 1
    4. spark.yarn.keytab: archivo keytab usado para la autenticación
    5. xx.jar: archivo JAR utilizado por el trabajo