Ejecuta trabajos de Spark con DataprocFileOutputCommitter

La función DataprocFileOutputCommitter es una versión mejorada del FileOutputCommitter de código abierto. Permite que los trabajos de Apache Spark realicen operaciones de escritura simultáneas en una ubicación de salida.

Limitaciones

La función DataprocFileOutputCommitter admite trabajos de Spark que se ejecutan en clústeres de Compute Engine de Dataproc creados con las siguientes versiones de imagen:

  • Imágenes de 2.1 2.1.10 y versiones posteriores

  • Imágenes de 2.0 2.0.62 y versiones posteriores

Utilizar DataprocFileOutputCommitter

Para usar esta función, sigue estos pasos:

  1. Crea un clúster de Dataproc en Compute Engine con las versiones de imagen 2.1.10, 2.0.62 o una posterior.

  2. Establece spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory y spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false como una propiedad de trabajo cuando envíes un trabajo de Spark al clúster.

    • Ejemplo de Google Cloud CLI:
    gcloud dataproc jobs submit spark \
        --properties=spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory,spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false \
        --region=REGION \
        other args ...
    
    • Ejemplo de código:
    sc.hadoopConfiguration.set("spark.hadoop.mapreduce.outputcommitter.factory.class","org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory")
    sc.hadoopConfiguration.set("spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs","false")