Todos los productos
Search
Centro de documentos

E-MapReduce:Get started with JAR development

Última actualización: Sep 04, 2026

Compile un paquete JAR con su lógica de negocio y cárguelo para desarrollar trabajos JAR de Spark. A continuación se presentan dos ejemplos que muestran cómo desarrollar y desplegar estos trabajos.

Requisitos previos

  • Ha creado un espacio de trabajo. Para obtener más información, consulte Manage workspaces.

  • Ha desarrollado su aplicación de negocio y la ha compilado en un paquete JAR.

Procedimiento

Paso 1: Desarrollar el paquete JAR

EMR Serverless Spark no proporciona un entorno de desarrollo de JAR integrado. Escriba el código de su aplicación Spark y empaquétele en un archivo JAR dentro de un entorno local o independiente.

En el archivo pom.xml de su proyecto Maven, agregue las dependencias de Spark necesarias. El entorno de ejecución de EMR Serverless Spark ya incluye estas dependencias; por lo tanto, establezca el scope como provided para evitar duplicidad de paquetes y conflictos de versión, manteniéndolas disponibles para la compilación y las pruebas.

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>

Consulta de tabla DLF

public class HiveTableAccess {
    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder()
                .appName("DlfTableAccessExample")
                .enableHiveSupport()
                .getOrCreate();
        spark.sql("SELECT * FROM test_table").show();
        spark.stop();
    }
}

Cálculo de pi (π)

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
 * Computes an approximation to pi
 * Usage: JavaSparkPi [partitions]
 */
public final class JavaSparkPi {
  public static void main(String[] args) throws Exception {
    SparkSession spark = SparkSession
      .builder()
      .appName("JavaSparkPi")
      .getOrCreate();
    JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
    int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
    int n = 100000 * slices;
    List<Integer> l = new ArrayList<>(n);
    for (int i = 0; i < n; i++) {
      l.add(i);
    }
    JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
    int count = dataSet.map(integer -> {
      double x = Math.random() * 2 - 1;
      double y = Math.random() * 2 - 1;
      return (x * x + y * y <= 1) ? 1 : 0;
    }).reduce((integer, integer2) -> integer + integer2);
    System.out.println("Pi is roughly " + 4.0 * count / n);
    spark.stop();
  }
}

Haga clic en SparkExample-1.0-SNAPSHOT.jar para descargar el paquete JAR de prueba.

Paso 2: Cargar el paquete JAR

  1. Vaya a la página de carga de artefactos.

    1. Inicie sesión en la consola de EMR.

    2. En el panel de navegación izquierdo, elija EMR Serverless > Spark.

    3. En la página Spark, haga clic en el nombre del espacio de trabajo deseado.

    4. En el panel de navegación izquierdo de la página de EMR Serverless Spark, haga clic en Artifacts.

  2. En la página Artifacts, haga clic en Upload File.

  3. En el cuadro de diálogo Upload File, haga clic en el área de carga para seleccionar su paquete JAR local o arrastre el paquete hacia dicha área.

    Este ejemplo utiliza SparkExample-1.0-SNAPSHOT.jar.

Paso 3: Desarrollar y ejecutar el trabajo

  1. En el panel de navegación izquierdo de la página de EMR Serverless Spark, haga clic en Development.

  2. En la pestaña Development, haga clic en el icono image.

  3. Introduzca un nombre, seleccione Application > JAR como tipo y, a continuación, haga clic en OK.

  4. En la esquina superior derecha, seleccione una cola de recursos.

    Para obtener más información sobre cómo agregar una cola, consulte Manage resource queues.

  5. En el nuevo editor de trabajos, configure los siguientes parámetros. Deje el resto con su configuración predeterminada y haga clic en Run.

    Parámetro

    Descripción

    Main JAR Resource

    Seleccione el paquete JAR que cargó. Este ejemplo utiliza SparkExample-1.0-SNAPSHOT.jar.

    Main Class

    La clase principal para el trabajo de Spark.

    • Para calcular el valor aproximado de pi, introduzca org.example.JavaSparkPi.

    • Para consultar la tabla Hive, introduzca org.example.HiveTableAccess.

  6. Una vez finalizado el trabajo, vaya a la sección Execution Records en la parte inferior y haga clic en Logs en la columna Actions.

    En el panel Logs, elija Driver log > Stdout. La salida Pi is roughly 3.1403 confirma que el trabajo de Spark se ejecutó correctamente.

    La salida de ejemplo para la consulta de tabla es una tabla formateada que contiene un registro: id=1, name=jay.

Paso 4: Publicar el trabajo

Importante

Los trabajos publicados pueden utilizarse como tareas en un flujo de trabajo.

  1. Una vez finalizado el trabajo, haga clic en Publish a la derecha.

  2. En el cuadro de diálogo que aparece, introduzca la información de publicación y haga clic en OK.

(Opcional) Paso 5: Consultar la Spark UI

Después de ejecutar un trabajo, consulte sus detalles de ejecución en la Spark UI.

  1. En el panel de navegación izquierdo, haga clic en Job History.

  2. En la página Application, localice el trabajo deseado y haga clic en Spark UI en la columna Actions.

  3. La página muestra detalles como User: root, Scheduling Mode: FIFO y Completed Jobs: 1. La entrada del trabajo muestra un ID de 0, una descripción de reduce at SparkPi.scala:38, una duración de 4 s, así como el progreso de etapas (1/1) y tareas (2/2). Estos detalles confirman que el trabajo Spark Pi se ejecutó correctamente.

Documentos relacionados

Después de publicar el trabajo, puede utilizarlo como tarea en un flujo de trabajo. Para obtener más información, consulte Manage workflows. Para ver un ejemplo completo de orquestación de trabajos, consulte Get Started with SparkSQL Development.