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 SparkSql

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 SparkSQL en la consola de MRS. Los trabajos de SparkSQL se utilizan para consultas y análisis de datos. Se admiten tanto las sentencias SQL como los scripts. Si las sentencias SQL incluyen información confidencial, use Spark Script para enviarlas.

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. En la página Create Job mostrada, establezca Type en SparkSql y configure la información del trabajo de SparkSql 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.

    SQL Type

    Tipo de envío de la sentencia SQL

    • SQL
    • Script

    SQL Statement

    Este parámetro solo es válido cuando SQL Type está establecido en SQL. Escriba la sentencia SQL que se va a ejecutar y, a continuación, haga clic en Check para comprobar si la sentencia SQL es correcta. Si desea enviar y ejecutar varias sentencias al mismo tiempo, use punto y coma (;) para separarlas.

    SQL File

    Este parámetro solo es válido cuando SQL Type está establecido en Script. La ruta del archivo SQL que se va a ejecutar debe cumplir con 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
      • 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.
    NOTA:

    Una ruta de archivo en OBS puede comenzar con obs://. Para enviar trabajos en este formato, debe configurar permisos para acceder a OBS.

    • 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 se admite al crear un clúster, configure la función.

    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.

    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.

    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

    Elementos de configuración de tareas que se agregarán.

    spark.executor.memory=2G

    --driver-memory

    Memoria de ejecución de un driver.

    2G

    --num-executors

    Número de executor que se iniciarán.

    5

    --executor-cores

    Número de núcleos del executor.

    2

    --jars

    Paquetes de dependencias adicionales de una tarea, que se utiliza para agregar los paquetes de dependencias externas a la tarea.

    -

    --executor-memory

    Memoria del executor.

    2G

    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.

    -

  6. 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 supergrupo), el grupo principal (supergrupo) 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. Inicie sesión en el nodo donde se encuentra el cliente Spark, cargue la credencial de autenticación de usuario creada en 2 en el directorio /opt del clúster y ejecute el siguiente comando para descomprimir el paquete:

    tar -xvf MRSTest _xxxxxx_keytab.tar

    Después de la descompresión, se obtienen los archivos user.keytab y krb5.conf.

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

    source /opt/Bigdata/client/bigdata_env

    cd $SPARK_HOME

  5. Abra la CLI de spark-sql y ejecute la siguiente sentencia SQL:

    ./bin/spark-sql --conf spark.yarn.principal=MRSTest --conf spark.yarn.keytab=/opt/user.keytab

    Para ejecutar el archivo SQL, debe cargar el archivo SQL (por ejemplo, en el directorio /opt/). Después de cargar el archivo, ejecute el siguiente comando:

    ./bin/spark-sql --conf spark.yarn.principal=MRSTest --conf spark.yarn.keytab=/opt/user.keytab -f /opt/script.sql