La función DataprocFileOutputCommitter es una versión mejorada de FileOutputCommitter de código abierto. Permite que los trabajos de Apache Spark escriban de forma simultánea en una ubicación de salida.
Limitaciones
La función DataprocFileOutputCommitter admite trabajos de Spark que se ejecutan en clústeres de Managed Service para Apache Spark de Compute Engine creados con las siguientes versiones de imágenes:
Versiones de imágenes 2.1.10 y posteriores
Versiones de imágenes 2.0.62 y posteriores de 2.0
Utilizar DataprocFileOutputCommitter
Sigue estos pasos para usar esta función:
Crea un clúster de Managed Service para Apache Spark en Compute Engine con las versiones de imagen
2.1.10o2.0.62, o versiones posteriores.Establece
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactoryyspark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=falsecomo una propiedad del 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")