הרכיב Apache Hudi מאפשר להריץ את Hudi ב-Managed Service for Apache Spark. כשמתקינים את הרכיב במהלך יצירת האשכול באמצעות התכונה Optional components, הוא פורס את ספריות Hudi ומגדיר את Spark ו-Hive באשכול כך שיעבדו עם Hudi.
גרסאות תואמות של Managed Service for Apache Spark
אפשר להתקין את רכיב Hudi באשכולות של Managed Service for Apache Spark שנוצרו באמצעות גרסאות האימג' הבאות של Managed Service for Apache Spark:
מאפיינים שקשורים ל-Hudi
כשיוצרים אשכול Managed Service for Apache Spark עם Hudi, המאפיינים הבאים של Spark ו-Hive מוגדרים לעבוד עם Hudi.
| קובץ תצורה | מאפיין (property) | ערך ברירת המחדל |
|---|---|---|
/etc/spark/conf/spark-defaults.conf |
spark.serializer |
org.apache.spark.serializer.KryoSerializer |
spark.sql.catalog.spark_catalog |
org.apache.spark.sql.hudi.catalog.HoodieCatalog |
|
spark.sql.extensions |
org.apache.spark.sql.hudi.HoodieSparkSessionExtension |
|
spark.driver.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
spark.executor.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
/etc/hive/conf/hive-site.xml |
hive.aux.jars.path |
file:///usr/lib/hudi/lib/hudi-hadoop-mr-bundle-version.jar |
התקנת הרכיב
מתקינים את רכיב Hudi כשיוצרים אשכול Managed Service for Apache Spark.
בדפי גרסאות ההפצה של קובצי האימג' של Managed Service for Apache Spark מפורטות גרסאות הרכיבים של Hudi שכלולות בכל גרסת הפצה של קובץ אימג' של Managed Service for Apache Spark.
מסוףGoogle Cloud
- במסוף Google Cloud , פותחים את הדף Create cluster.
- לוחצים על הגדרות נוספות כדי להרחיב את הקטע.
- עורכים את Optional components.
- בחלונית שנפתחת, מסמנים את התיבה של Hudi.
- לוחצים על Save.
CLI של gcloud
כדי ליצור אשכול Managed Service for Apache Spark שכולל את רכיב Hudi, משתמשים בפקודה עם הדגל --optional-components.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER_NAME: חובה. השם החדש של האשכול.
- REGION: חובה. האזור של האשכול.
- DATAPROC_IMAGE: אופציונלי. אתם יכולים להשתמש בדגל האופציונלי הזה כדי לציין גרסת אימג' של Managed Service for Apache Spark שהיא לא ברירת המחדל (ראו גרסת אימג' של Managed Service for Apache Spark שמוגדרת כברירת מחדל).
- PROPERTIES: אופציונלי. אפשר להשתמש בדגל האופציונלי הזה כדי להגדיר את המאפיינים של רכיב Hudi, שמצוינים באמצעות הקידומת של הקובץ
hudi:(לדוגמה:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE).- מאפיין גרסת הרכיב של Hudi: אפשר לציין את המאפיין
dataproc:hudi.version. הערה: גרסת הרכיב של Hudi מוגדרת על ידי Managed Service for Apache Spark כך שתתאים לגרסת קובץ האימג' של האשכול ב-Managed Service for Apache Spark. אם מגדירים את המאפיין הזה, יכול להיות שהאשכול לא ייווצר אם הגרסה שצוינה לא תואמת לתמונת האשכול. - מאפייני Spark ו-Hive: כשיוצרים את האשכול, Managed Service for Apache Spark מגדיר את מאפייני Spark ו-Hive שקשורים ל-Hudi. לא צריך להגדיר אותם כשיוצרים את האשכול או שולחים משימות.
- מאפיין גרסת הרכיב של Hudi: אפשר לציין את המאפיין
API בארכיטקטורת REST
אפשר להתקין את רכיב Hudi דרך Dataproc API באמצעות SoftwareConfig.Component כחלק מבקשת clusters.create.
שליחת משימה לקריאה ולכתיבה של טבלאות Hudi
אחרי שיוצרים אשכול עם רכיב Hudi, אפשר לשלוח משימות Spark ו-Hive שקוראות וכותבות טבלאות Hudi.
דוגמה ל-gcloud CLI:
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ --region=region \ JOB_FILE \ -- JOB_ARGS
משימת PySpark לדוגמה
קובץ ה-PySpark הבא יוצר, קורא וכותב טבלת Hudi.
הפקודה הבאה ב-CLI של gcloud שולחת את קובץ ה-PySpark לדוגמה אל Managed Service for Apache Spark.
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
שימוש ב-CLI של Hudi
Hudi CLI נמצא ב-/usr/lib/hudi/cli/hudi-cli.sh בצומת הראשי של אשכול Managed Service for Apache Spark. אתם יכולים להשתמש ב-Hudi CLI כדי להציג סכימות, נתוני קומיט ונתונים סטטיסטיים של טבלאות Hudi, ולבצע באופן ידני פעולות ניהוליות, כמו תזמון דחיסות (ראו שימוש ב-hudi-cli).
כדי להפעיל את ה-CLI של Hudi ולהתחבר לטבלת Hudi:
- מבצעים SSH לצומת הראשי.
- מריצים את
/usr/lib/hudi/cli/hudi-cli.sh. שורת הפקודה משתנה ל-hudi->. - מריצים את
connect --path gs://my-bucket/my-hudi-table. - מריצים פקודות, כמו
desc, שמתארת את סכימת הטבלה, אוcommits show, שמציגה את היסטוריית ה-commit. - כדי להפסיק את הסשן של ה-CLI, מריצים את הפקודה
exit.