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 Compute Engine de Dataproc creados con las siguientes versiones de imagen:
Versiones de imágenes 2.1.10 y posteriores
Versiones de imágenes 2.0.62 y posteriores de 2.0
Utilizar DataprocFileOutputCommitter
Para usar esta función, sigue estos pasos:
Crea un clúster de Dataproc en Compute Engine con las versiones de imagen
2.1.10
o2.0.62
, o una superior.Establece
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory
yspark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false
como 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")