אפשר להתקין רכיבים נוספים כמו Hudi כשיוצרים אשכול Dataproc באמצעות התכונה רכיבים אופציונליים. בדף הזה מוסבר איך להתקין את רכיב Hudi באשכול Dataproc.
כשמתקינים את הרכיב Apache Hudi באשכול Dataproc, הוא מתקין ספריות Hudi ומגדיר את Spark ו-Hive באשכול כך שיפעלו עם Hudi.
גרסאות תמונות Dataproc תואמות
אפשר להתקין את רכיב Hudi באשכולות Dataproc שנוצרו עם הגרסאות הבאות של תמונות Dataproc:
מאפיינים שקשורים ל-Hudi
כשיוצרים אשכול Dataproc עם 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 כשיוצרים אשכול Dataproc.
בדפים של גרסאות הפצה של Dataproc Image מפורטת גרסת רכיב Hudi שכלולה בכל גרסת הפצה של Dataproc Image.
המסוף
- מפעילים את הרכיב.
- במסוף Google Cloud , פותחים את הדף Dataproc Create a cluster. החלונית הגדרת אשכול נבחרת.
- בקטע Components (רכיבים):
- בקטע Optional components (רכיבים אופציונליים), בוחרים ברכיב Hudi.
פקודת gcloud
כדי ליצור אשכול Dataproc שכולל את רכיב 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: אופציונלי. אפשר להשתמש בדגל האופציונלי הזה כדי לציין גרסת תמונה של Dataproc שאינה ברירת המחדל (ראו גרסת ברירת המחדל של תמונת Dataproc).
- PROPERTIES: אופציונלי. אפשר להשתמש בדגל האופציונלי הזה כדי להגדיר מאפיינים של רכיב Hudi, שמצוינים באמצעות
hudi:קידומת הקובץ (לדוגמה:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE).- מאפיין גרסת רכיב Hudi: אפשר לציין את המאפיין
dataproc:hudi.version. הערה: גרסת רכיב Hudi מוגדרת על ידי Dataproc כך שתהיה תואמת לגרסת תמונת אשכול Dataproc. אם מגדירים את המאפיין הזה, יכול להיות שיצירת האשכול תיכשל אם הגרסה שצוינה לא תואמת לתמונת האשכול. - מאפייני Spark ו-Hive: Dataproc מגדיר מאפיינים שקשורים ל-Hudi Spark ו-Hive כשיוצרים את האשכול. לא צריך להגדיר אותן כשיוצרים את האשכול או כששולחים עבודות.
- מאפיין גרסת רכיב 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 לדוגמה אל Dataproc.
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
שימוש ב-Hudi CLI
ה-CLI של Hudi נמצא בנתיב /usr/lib/hudi/cli/hudi-cli.sh בצומת הראשי של אשכול Dataproc. אפשר להשתמש ב-CLI של Hudi כדי להציג סכימות, קומיטים ונתונים סטטיסטיים של טבלאות Hudi, וכדי לבצע באופן ידני פעולות ניהוליות, כמו תזמון של פעולות דחיסה (ראו שימוש ב-hudi-cli).
כדי להפעיל את Hudi CLI ולהתחבר לטבלת Hudi:
- מתחברים ב-SSH לצומת הראשי.
- מריצים את
/usr/lib/hudi/cli/hudi-cli.sh. שורת הפקודה משתנה ל-hudi->. - מריצים את
connect --path gs://my-bucket/my-hudi-table. - להריץ פקודות, כמו
descשמתארת את סכימת הטבלה, אוcommits showשמציגה את היסטוריית השמירה. - כדי להפסיק את סשן ה-CLI, מריצים את הפקודה
exit.