פתרון בעיות

בדף הזה מפורטים תרחישי שגיאה שונים ושלבים לפתרון בעיות שיעזרו לכם לפתור את השגיאות.

תרחישים של שגיאות בקישוריות וברשת

אם נתקלתם בבעיות בקישוריות או ברשת בשירות שלכם, כדאי לבדוק את התרחישים שמפורטים בקטעים הבאים כדי לראות אם אחד מהם גורם לבעיה.

יצירת השירות נכשלת בגלל מגבלה להגבלת VPC peering

אל תגדירו את האילוץ של מדיניות הארגון כדי להגביל את הקישור בין רשתות VPC. אם מציינים את הערך constraints/compute.restrictVpcPeering, בקשת היצירה נכשלת עם השגיאה INVALID_ARGUMENT. אם אתם חייבים להגדיר את האילוץ, משתמשים בפקודה הבאה כדי לאפשר את under:folders/270204312590:

gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID

מידע נוסף מופיע במאמר אילוצים של מדיניות הארגון.

פריסה בין פרויקטים נכשלת במקרים שבהם יכול להיות שחשבון השירות לא קיים

כדי ליצור שירות Dataproc Metastore שאפשר לגשת אליו ברשת ששייכת לפרויקט אחר מזה שהשירות שייך לו, צריך להעניק את ההרשאה roles/metastore.serviceAgent לסוכן השירות של Dataproc Metastore (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) בפרויקט השירות במדיניות IAM של פרויקט הרשת.

gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
    --role "roles/metastore.serviceAgent" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"

מידע נוסף זמין במאמר בנושא הגדרת פריסה בין פרויקטים.

נדרשת כתובת IP פרטית לקישוריות לרשת

‫Dataproc Metastore משתמש רק בכתובות IP פרטיות, כך שלא נחשפת כתובת IP ציבורית. המשמעות היא שרק מכונות וירטואליות ברשת הענן הווירטואלי הפרטי (VPC) שסופקה או במקום (שמחוברות דרך Cloud VPN או Cloud Interconnect) יכולות לגשת לשירות Dataproc Metastore.

מידע נוסף זמין במאמר גישה לשירותים.

כלל חומת אש נדרש מסוג ingress-allow ל-Kerberos

‫Kerberos מחייב את Dataproc Metastore ליזום חיבורים למארחים ברשת הפרויקט. צריך ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) מסוג TCP ו-UDP בכל היציאות מבלוק כתובות ה-IP‏ /17 שמכיל את כתובת ה-IP של Dataproc Metastore.

מידע נוסף זמין במאמרים בנושא כללים של חומת אש ב-KDC וכללים של חומת אש לשירותים.

שגיאת חיבור שנגרמת בגלל משאבים שהוקצו ברשתות VPC משותפות

אם אתם משתמשים ב-Dataproc Metastore. אם זה יקרה, Dataproc Metastore ינסה להזמין טווחים של כתובות IP פרטיות מחוץ לטווחים של RFC 1918 ליצירת שירות. רשימה של טווחים פרטיים נתמכים שאינם RFC 1918 זמינה בקטע טווחים תקינים במסמכי התיעוד של רשת ה-VPC.} השירות משתמש ברשת ששייכת לפרויקט אחר, ו-Compute Engine מוגן על ידי גבולות גזרה לשירות, אז פרויקט המטא-חנות ופרויקט הרשת צריכים להיות באותו גבולות גזרה.

כדי להוסיף פרויקטים קיימים של Dataproc Metastore לגבול הגזרה, פועלים לפי ההוראות שבמאמר בנושא עדכון גבול גזרה לשירות.

מידע נוסף זמין במאמר VPC Service Controls עם Dataproc Metastore.

הטווח של כתובות ה-IP שהוקצו מוצה

יכול להיות שברשת ה-VPC שצוינה לא יהיו מספיק כתובות RFC 1918 זמינות שנדרשות לשירותי Dataproc Metastore. אם זה יקרה, Dataproc Metastore ינסה להזמין טווחים של כתובות IP פרטיות מחוץ לטווחים של RFC 1918 ליצירת שירות. רשימה של טווחים פרטיים נתמכים שאינם RFC 1918 זמינה בקטע טווחים תקינים במסמכי רשת VPC.

כתובות IP פרטיות שאינן RFC 1918 שמשמשות ב-Dataproc Metastore עלולות להתנגש עם טווח ברשת מקומית שמחוברת לרשת ה-VPC שצוינה. כדי לבדוק את רשימת כתובות ה-IP הפרטיות מסוג RFC 1918 וכתובות ה-IP הפרטיות שאינן מסוג RFC 1918 ששמורות על ידי Dataproc Metastore:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

אם מזוהה התנגשות ואי אפשר לפתור אותה על ידי הגדרה מחדש של הרשת המקומית, צריך למחוק את שירות Dataproc Metastore הבעייתי וליצור אותו מחדש אחרי שעתיים.

מידע נוסף זמין במאמר בנושא מיצוי של טווח כתובות IP.

תרחישים של שגיאות שקשורות לפעולות שחורגות מהזמן הקצוב

תרחישי השגיאה הבאים גורמים לשירות לא להגיב או לפסק זמן של פעולה.

שימוש ביומני ביקורת לפתרון בעיות שקשורות לפסק זמן של פעולות

כדי לפתור בעיות שקשורות לזמן קצוב לתפוגה של פעולת שירות, משתמשים ב-Logs Explorer במסוףGoogle Cloud כדי לאחזר את הרשומות ביומן הביקורת של פרויקט הענן שלכם.

בחלונית Query builder, בוחרים באפשרות Audited Resource או audited_resource כסוג המשאב, ואז באפשרות Dataproc Metastore או metastore.googleapis.com כשירות. Google Cloud בחירת שיטה היא אופציונלית.

מידע נוסף זמין במאמר בנושא צפייה ביומנים.

השירות לא זמין

יכול להיות ששירותי Dataproc Metastore לא יהיו זמינים מסיבות שונות, וזה עלול לגרום לכשלים. סיבות נפוצות להתרחשות הזו כוללות שימוש גבוה במעבד (CPU) או שגיאות שקשורות לזיכרון.

הבעיה יכולה להיגרם מעומס גבוה או משאילתות שמופעלות על הרבה טבלאות ומחיצות. כדי למנוע את הבעיה, מומלץ להשתמש ברמת השירות Enterprise, שמספקת יכולת הרחבה גמישה, סובלנות לתקלות וזמינות גבוהה בכמה אזורים, תוך טיפול בעומסי עבודה כבדים.

כדי לפתור בעיות שקשורות לשגיאות של חוסר זיכרון, אפשר להשתמש ב-Logs Explorer בGoogle Cloud מסוף כדי לאחזר את הרשומות ביומן הביקורת של הפרויקט ב-Cloud.

  1. ב-Logs Explorer, לוחצים על Query builder.
  2. בוחרים את המסננים הבאים:
    • סוג המשאב: metastore.googleapis.com/Services
    • מידת החוּמרה: ERROR
    • מילת מפתח: OutofMemoryError

מידע נוסף זמין במאמר בנושא צפייה ביומנים.

תרחישים של שגיאות בייבוא ובייצוא

בקטע הזה מפורטות בעיות נפוצות בייבוא ובייצוא של Dataproc Metastore.

הייבוא נכשל כי הגרסאות של Hive לא תואמות

כשמייבאים מטא-נתונים, הגרסאות של Hive metastore ושל Dataproc Metastore צריכות להיות תואמות. אם שני השמות לא זהים, יכול להיות שהייבוא ייכשל.

מידע נוסף על תאימות זמין במאמר בנושא מדיניות הגרסאות.

אפשר לבדוק ב-Cloud Logging אם נתקלתם בשגיאה הזו. ההודעה הבאה היא דוגמה לשגיאה הזו.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

הייבוא נכשל כי חסרים קבצים של טבלאות Hive

כשמכינים את הייבוא ל-Avro, צריך ליצור קובץ לכל טבלה ב-Hive, גם אם הטבלה ריקה, אחרת הייבוא ייכשל.

אפשר להשתמש בDataproc Metastore Toolkit כהפניה כדי לבדוק את סכימות המטא-נתונים הנכונות של Hive.

לסוכן השירות או למשתמש אין את ההרשאות הנדרשות

לסוכן השירות של Dataproc Metastore‏ (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) ולמשתמש שמייבא את המטא-נתונים צריכה להיות הרשאת הקריאה הבאה לקטגוריית Cloud Storage שמשמשת לייבוא:

  • ב-MySQL, צריכה להיות להם הרשאת storage.objects.get באובייקט Cloud Storage (קובץ SQL מוכן לשימוש) שמשמש לייבוא.

  • בפורמט Avro, צריכה להיות להם הרשאה storage.objects.get בקטגוריית Cloud Storage שמשמשת לייבוא.

לגבי ייצוא, לסוכן השירות של Dataproc Metastore‏ (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) ולמשתמש שיוצר את הייצוא צריכה להיות הרשאת storage.objects.create בקטגוריה.

העבודה נכשלת כי קובץ מסד הנתונים גדול מדי

אם קובץ מסד הנתונים גדול מדי, יכול להיות שייקח יותר זמן ממגבלת הזמן הקצוב לתהליך עד שתהליך הייבוא או הייצוא יסתיים. אם הייבוא לא מסתיים בתוך הזמן הקצוב לתפוגה של משימה (3 שעות), אפשר לפצל את המטא-נתונים לכמה מופעים של Dataproc Metastore.

תרחישי שגיאה בגיבוי ובשחזור

בקטע הזה מפורטות בעיות נפוצות בגיבוי ובשחזור של Dataproc Metastore.

אי אפשר ליצור גיבוי חדש לשירות

אם כבר יש 7 גיבויים בשירות, צריך למחוק גיבוי באופן ידני לפני שיוצרים גיבוי חדש. אפשר למחוק גיבויים קיימים בכרטיסייה גיבוי/שחזור.

למשתמש אין את ההרשאות הנדרשות

כדי לגבות מטא-נתונים, צריך לבקש תפקיד IAM שמכיל את הרשאת ה-IAM‏ metastore.backups.create.

כדי לשחזר מטא-נתונים, צריך לבקש תפקיד IAM שמכיל את הרשאות ה-IAM‏ metastore.services.restore ו-metastore.backups.use.

המשימה נכשלת כי קובץ המטא-נתונים של השירות גדול מדי

אם קובץ המטא-נתונים של השירות גדול מדי, יכול להיות שיידרש יותר ממגבלת הזמן הקצוב לתפוגה של שעה לעיבוד המשימה כדי להשלים את תהליך הגיבוי או השחזור.

תרחישי שגיאה באשכול Dataproc

בקטעים הבאים מפורטות בעיות נפוצות ב-Dataproc ובאשכולות בניהול עצמי.

הצירוף של אשכול Dataproc נכשל בגלל גרסאות לא תואמות

כשמצרפים אשכול Dataproc, תמונת Dataproc וגרסת Hive של Dataproc Metastore צריכות להיות תואמות. כדי לוודא שהגרסה של Hive תואמת, בודקים את הדפים הבאים בנושא ניהול גרסאות של תמונות:

מידע נוסף זמין במאמר רשימת הגרסאות של תמונות Dataproc.

יצירת אשכול Dataproc נכשלת בגלל תפקידים לא מספיקים

כשיוצרים אשכול Dataproc, יצירת האשכול נכשלת ומוצגת הודעת השגיאה הבאה:

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

השגיאה הזו יכולה להתרחש כשמנסים ליצור אשכול Dataproc ולצרף אותו ל-Dataproc Metastore.

כדי לפתור את הבעיה, צריך להעניק את ההרשאה roles/dataproc.worker לחשבון השירות. בדוגמה הבאה מוסבר איך עושים את זה, באמצעות כמה ערכים לדוגמה.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

החיבור למאגר המטא-נתונים נכשל בגלל בעיות באזור הזמן

קובץ ה-Hive מחזיר את השגיאה The server time zone value 'CDT' is unrecognized or represents more than one time zone.

אם אי אפשר להתחבר למאגר המטא-נתונים מ-Dataproc, צריך למחוק את האשכול הנוכחי ולעדכן את הפקודה gcloud dataproc clusters create או את כלי האוטומציה כך שיכללו את פרמטר אזור הזמן הבא:

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

פתרון בעיות ב-Google Cloud CLI

אם נתקלתם בבעיה שבה פקודה ב-CLI של gcloud לא זמינה, או שהפקודה מתנהגת באופן שונה מהמתואר במסמכי התיעוד, נסו לעדכן את ה-CLI של gcloud:

gcloud components update

המאמרים הבאים