הרצת משימות Spark באמצעות DataprocFileOutputCommitter

התכונה DataprocFileOutputCommitter היא גרסה משופרת של FileOutputCommitter קוד פתוח. הוא מאפשר כתיבה בו-זמנית של משימות Apache Spark למיקום פלט.

מגבלות

התכונה DataprocFileOutputCommitter תומכת במשימות Spark שמופעלות באשכולות של Managed Service for Apache Spark Compute Engine שנוצרו עם גרסאות התמונות הבאות:

  • גרסאות תמונה 2.1.10 ומעלה

  • גרסאות תמונה 2.0.62 ומעלה

שימוש ב-DataprocFileOutputCommitter

כדי להשתמש בתכונה הזו:

  1. יוצרים אשכול של Managed Service for Apache Spark ב-Compute Engine באמצעות גרסאות תמונה 2.1.10 או 2.0.62 ואילך.

  2. מגדירים את spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory ואת spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false כמאפיין של עבודה כששולחים עבודת Spark לאשכול.

    • דוגמה ל-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 ...
    
    • קוד לדוגמה:
    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")