Dataproc Metastore הוא שירות metastore מנוהל עם זמינות גבוהה, תיקון תוכנה אוטומטי (autohealing) וללא שרת (serverless), של Apache Hive (HMS) שפועל ב- Google Cloud.
כדי לנהל את המטא-נתונים באופן מלא, Dataproc Metastore ממפה את הנתונים שלכם לטבלאות של Apache Hive.
גרסאות נתמכות של Apache Hive
Dataproc Metastore תומך רק בגרסאות ספציפיות של Apache Hive. מידע נוסף זמין במדיניות בנושא גרסאות Hive.
איך Hive מטפל במטא-נתונים
מכיוון ש-Dataproc Metastore הוא Hive metastore, חשוב להבין איך הוא מנהל את המטא-נתונים שלכם.
כברירת מחדל, לכל האפליקציות של Hive יכולות להיות טבלאות פנימיות מנוהלות או טבלאות חיצוניות לא מנוהלות. כלומר, המטא-נתונים שאתם מאחסנים בשירות Dataproc Metastore יכולים להיות קיימים בטבלאות פנימיות וחיצוניות.
כשמשנים נתונים, שירות Dataproc Metastore (Hive) מתייחס לטבלאות פנימיות וחיצוניות באופן שונה.
- טבלאות פנימיות. ניהול של מטא-נתונים ונתוני טבלה.
- טבלאות חיצוניות. הוא מנהל רק מטא-נתונים.
לדוגמה, אם מוחקים הגדרה של טבלה באמצעות ההצהרה DROP TABLE Hive SQL:
drop table foo
טבלאות פנימיות. Dataproc Metastore מוחק את כל המטא-נתונים. הפעולה הזו מוחקת גם את הקבצים שמשויכים לטבלה.
טבלאות חיצוניות. שירות Dataproc Metastore מוחק רק את המטא-נתונים. היא שומרת את הנתונים שמשויכים לטבלה.
ספריית מחסן Hive
Dataproc Metastore משתמש בספריית מחסן הנתונים של Hive כדי לנהל את הטבלאות הפנימיות שלכם. ספריית מחסן הנתונים של Hive היא המקום שבו הנתונים שלכם מאוחסנים בפועל.
כשמשתמשים בשירות Dataproc Metastore, ספריית מחסן הנתונים של Hive היא קטגוריה של Cloud Storage. Dataproc Metastore תומך רק בשימוש בקטגוריות של Cloud Storage לספריית מחסן הנתונים. לעומת זאת, ב-HMS מקומי, ספריית מחסן הנתונים של Hive בדרך כלל מצביעה על ספרייה מקומית.
הבאקט הזה נוצר באופן אוטומטי בכל פעם שיוצרים שירות Dataproc Metastore. אפשר לשנות את הערך הזה על ידי הגדרת שינוי של הגדרת Hive Metastore בנכס hive.metastore.warehouse.dir.
קטגוריות של Cloud Storage לארטיפקטים
קטגוריית ה-artifacts מאחסנת את ה-artifacts של Dataproc Metastore, כמו מטא-נתונים מיוצאים ונתונים של טבלאות פנימיות מנוהלות.
כשיוצרים שירות Dataproc Metastore, נוצרת באופן אוטומטי קטגוריה של Cloud Storage בפרויקט. כברירת מחדל, גם קטגוריית הארטיפקטים וגם ספריית מחסן הנתונים מצביעות על אותה קטגוריה. אי אפשר לשנות את המיקום של קטגוריית הארטיפקטים, אבל אפשר לשנות את המיקום של ספריית מחסן הנתונים של Hive.
קטגוריית ה-Artifacts נמצאת במיקום הבא:
gs://your-artifacts-bucket/hive-warehouse.- לדוגמה,
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4.
גישה לספריית מחסן הנתונים של Hive
אחרי שהקטגוריה נוצרת באופן אוטומטי, צריך לוודא שלחשבונות השירות ב-Dataproc יש הרשאה לגשת לספריית מחסן הנתונים של Hive.
כדי לגשת לספריית מחסן הנתונים ברמת האובייקט (לדוגמה, gs://mybucket/object), צריך להעניק לחשבונות השירות של Dataproc גישת קריאה וכתיבה לאובייקט האחסון של הקטגוריה, באמצעות התפקיד
roles/storage.objectAdmin. צריך להגדיר את התפקיד הזה ברמת הקטגוריה או ברמה גבוהה יותר.כדי לגשת לספריית מחסן הנתונים כשמשתמשים בתיקייה ברמה העליונה (לדוגמה, gs://mybucket), צריך להעניק לחשבונות השירות של Dataproc גישת קריאה וכתיבה לאובייקט האחסון של הקטגוריה, באמצעות התפקיד
roles/storage.storageAdmin.
אם ספריית מחסן הנתונים של Hive לא נמצאת באותו פרויקט כמו Dataproc Metastore, צריך לוודא שיש לסוכן השירות של Dataproc Metastore הרשאה לגשת לספריית מחסן הנתונים של Hive. סוכן השירות של פרויקט Dataproc Metastore הוא service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com.
נותנים לסוכן השירות הרשאת קריאה וכתיבה לקטגוריה באמצעות התפקיד roles/storage.objectAdmin.
איפה נמצאת ספריית מחסן הנתונים של Hive
- פותחים את הדף Dataproc Metastore.
לוחצים על שם השירות.
ייפתח דף הפרטים של השירות.
בטבלת ההגדרות, מוצאים את Metastore config overrides (הגדרות שחורגות מההגדרות של Metastore) > hive.metastore.warehouse.dir.
מחפשים את הערך שמתחיל ב-
gs://.הערך הזה הוא המיקום של ספריית מחסן הנתונים של Hive.

שינוי ספריית מחסן הנתונים של Hive
כדי להשתמש בקטגוריה של Cloud Storage משלכם עם Dataproc Metastore, צריך להגדיר החלפה של הגדרת Hive Metastore כדי להפנות למיקום החדש של הקטגוריה.
אם משנים את ספריית ברירת המחדל של המחסן, כדאי לפעול לפי ההמלצות האלה.
לא מומלץ להשתמש בספריית הבסיס של קטגוריה של Cloud Storage (
gs://mybucket) כדי לאחסן טבלאות Hive.צריך לוודא שלחשבון השירות של המכונה הווירטואלית ב-Dataproc Metastore יש הרשאה לגישה לספריית מחסן הנתונים של Hive.
לקבלת התוצאות הטובות ביותר, כדאי להשתמש בקטגוריות של Cloud Storage שנמצאות באותו אזור כמו שירות Dataproc Metastore. למרות ש-Dataproc Metastore מאפשר שימוש בדליים חוצי-אזורים, משאבים שממוקמים באותו אזור משיגים ביצועים טובים יותר. לדוגמה, אי אפשר להשתמש ב-bucket של
europe-west1עם שירות שלus-central1. גישה בין אזורים גורמת לחביון גבוה יותר, לחוסר בידוד של כשלים אזוריים ולחיובים על רוחב פס ברשת בין אזורים.
כדי לשנות את ספריית מחסן הנתונים של Hive
- פותחים את הדף Dataproc Metastore.
לוחצים על שם השירות.
ייפתח דף הפרטים של השירות.
בטבלת ההגדרות, מחפשים את הקטע Metastore config overrides (הגדרות לביטול ההגדרות של Metastore) > hive.metastore.warehouse.dir.
משנים את הערך
hive.metastore.warehouse.dirלמיקום של הדלי החדש. לדוגמה,gs://my-bucket/path/to/location.
מחיקת הקטגוריה
מחיקה של שירות Dataproc Metastore לא מוחקת אוטומטית את קטגוריית הארטיפקטים של Cloud Storage. הבאקט לא נמחק באופן אוטומטי כי יכול להיות שהוא מכיל נתונים שימושיים אחרי שהשירות מסתיים. כדי למחוק את הדלי, מריצים פעולת מחיקה ב-Cloud Storage.