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 MapReduce

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 MapReduce en la consola de gestión de MRS. Los trabajos de MapReduce se utilizan para enviar programas JAR para procesar rápidamente cantidades masivas de datos en paralelo y crear un entorno de procesamiento y ejecución de datos distribuidos.

Si las funciones de gestión de archivos y trabajos no se admiten en la página de detalles del clúster, envíe los trabajos en segundo plano.

Prerrequisitos

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

Antes de cargar los paquetes de programas y archivos de datos en OBS, debe crear una delegación OBS y vincularla al clúster MRS.

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.

    Si el nombre de usuario de IAM contiene espacios (por ejemplo, admin 01), no se puede crear un trabajo.

  6. En Type, seleccione MapReduce. Configurar otra información del trabajo.

    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
      • 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.

    Parameters

    (Opcional) Es el parámetro clave para la ejecución del programa. Múltiples parámetros están separados por espacio.

    Método de configuración: Program class name Data input path Data output path

    • Nombre de la clase del programa: Es especificada por una función en su programa. MRS es responsable de la transferencia de parámetros solamente.
    • Ruta de entrada de datos: Haga clic en HDFS u OBS para seleccionar una ruta o introduzca manualmente una ruta correcta.
    • Ruta de salida de datos: Ingrese un directorio que no existe.

      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 2 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 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.

    -

  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 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. En la página de pestaña Nodes, haga clic en el nombre de un nodo de Master para ir a la consola de gestión de ECS.
  4. Haga clic en Remote Login en la esquina superior derecha de la página.
  5. Introduzca el nombre de usuario y la contraseña del nodo de Master como se le solicite. El nombre de usuario es root y la contraseña es la que se establece durante la creación del clúster.
  6. Ejecute el siguiente comando para inicializar variables de entorno:

    source /opt/Bigdata/client/bigdata_env

  7. Si la autenticación de Kerberos está habilitada para el clúster actual, ejecute el siguiente comando para autenticar al usuario. Si la autenticación Kerberos está deshabilitada para el clúster actual, omita este paso.

    kinit MRS cluster user

    Ejemplo: kinit admin

  8. Ejecute el siguiente comando para copiar el programa en el sistema de archivos de OBS al nodo de Master del clúster:

    hadoop fs -Dfs.obs.access.key=AK -Dfs.obs.secret.key=SK -copyToLocal source_path.jar target_path.jar

    Ejemplo: hadoop fs -Dfs.obs.access.key=XXXX -Dfs.obs.secret.key=XXXX -copyToLocal "obs://mrs-word/program/hadoop-mapreduce-examples-XXX.jar" "/home/omm/hadoop-mapreduce-examples-XXX.jar"

    Puede iniciar sesión en OBS Console usando AK/SK. Para obtener información de AK/SK, haga clic en el nombre de usuario en la esquina superior derecha de la consola de gestión y elija My Credentials > Access Keys.

  9. Ejecute el siguiente comando para enviar un trabajo de wordcount. Si es necesario leer datos de OBS o enviarlos a OBS, es necesario agregar los parámetros AK/SK.

    source /opt/Bigdata/client/bigdata_env;hadoop jar execute_jar wordcount input_path output_path

    Ejemplo: source /opt/Bigdata/client/bigdata_env;hadoop jar /home/omm/hadoop-mapreduce-examples-XXX.jar wordcount -Dfs.obs.access.key=XXXX -Dfs.obs.secret.key=XXXX "obs://mrs-word/input/*" "obs://mrs-word/output/"

    En el comando anterior, el input_path indica una ruta para almacenar archivos de entrada de trabajo en OBS. output_path indica una ruta para almacenar archivos de salida de trabajo en OBS y debe establecerse en un directorio que no existe