A funcionalidade DataprocFileOutputCommitter é uma versão melhorada do FileOutputCommitter
de código aberto. Permite escritas simultâneas por tarefas do Apache Spark num local de saída.
Limitações
A funcionalidade DataprocFileOutputCommitter
suporta tarefas do Spark executadas em clusters do Dataproc Compute Engine criados com as seguintes versões de imagens:
Versões de imagens 2.1.10 e superiores
Versões de imagens 2.0.62 e superiores
Usar DataprocFileOutputCommitter
Para usar esta funcionalidade:
Crie um cluster do Dataproc no Compute Engine com as versões de imagem
2.1.10
ou2.0.62
ou superior.Defina
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory
espark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false
como uma propriedade do trabalho quando envia um trabalho do Spark para o cluster.- Exemplo da CLI do 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 ...
- Exemplo 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")