Ejecuta trabajos de Spark con DataprocFileOutputCommitter

La función DataprocFileOutputCommitter es una versión mejorada de código abierto FileOutputCommitter. Permite escrituras simultáneas de trabajos de Apache Spark en una ubicación de salida.

Limitaciones

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

  • Versiones de imagen 2.1.10 y superiores

  • Versiones de imagen 2.0.62 y superiores

Usa DataprocFileOutputCommitter

Para usar esta función, haz lo siguiente:

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

  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 del trabajo cuando envíes un trabajo de Spark al clúster.

    • Ejemplo de la CLI de Google Cloud:
    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")