בדף הזה מוסבר איך לגבות ולשחזר סכימת Ranger ב-Managed Service for Apache Spark עם אשכולות Ranger.
לפני שמתחילים
אם צריך, יוצרים קטגוריה. צריכה להיות לכם גישה לקטגוריה של Cloud Storage, שבה תשתמשו כדי לאחסן ולשחזר סכימת Ranger.
כדי ליצור קטגוריה:
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
- לוחצים על יצירה.
- ממלאים את פרטי הקטגוריה בדף Create a bucket. כדי לעבור לשלב הבא לוחצים על Continue.
-
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- מזינים שם ייחודי בהיקף גלובלי שעומד בקריטריונים לשמות של קטגוריות.
- כדי להוסיף תווית לדלי, מרחיבים את הקטע Labels (תוויות) (), לוחצים על add_box
Add label (הוספת תווית) ומציינים
keyו-valueבשביל התווית.
-
בקטע Choose where to store your data, מבצעים את הפעולות הבאות:
- בוחרים סוג מיקום.
- בתפריט הנפתח Location type, בוחרים מיקום שבו יישמרו נתוני הקטגוריה באופן קבוע.
- אם בוחרים את סוג המיקום בשני אזורים, אפשר גם להפעיל רפליקציה בקצב טורבו באמצעות תיבת הסימון הרלוונטית.
- כדי להגדיר שכפול בין מאגרי מידע, בוחרים באפשרות הוספת שכפול בין מאגרי מידע באמצעות Storage Transfer Service ופועלים לפי השלבים הבאים:
הגדרה של רפליקציה בין דליים
- בתפריט Bucket, בוחרים באפשרות הרצויה.
בקטע הגדרות השכפול, לוחצים על הגדרה כדי להגדיר את ההגדרות של משימת השכפול.
מופיעה החלונית Configure cross-bucket replication.
- כדי לסנן אובייקטים לשכפול לפי קידומת של שם האובייקט, מזינים קידומת שרוצים לכלול או להחריג אובייקטים ממנה, ואז לוחצים על הוספת קידומת.
- כדי להגדיר סוג אחסון לאובייקטים המשוכפלים, בוחרים סוג אחסון בתפריט סוג אחסון. אם מדלגים על השלב הזה, האובייקטים המשוכפלים ישתמשו בסוג האחסון של קטגוריית היעד כברירת מחדל.
- לוחצים על סיום.
-
בקטע Choose how to store your data, מבצעים את הפעולות הבאות:
- בוחרים default storage class לקטגוריה או Autoclass לניהול אוטומטי של סוג האחסון (storage class) של נתוני הקטגוריה.
- כדי להפעיל מרחב שמות היררכי, בקטע Optimize storage for data-intensive workloads, בוחרים באפשרות Enable hierarchical namespace on this bucket.
- בקטע Choose how to control access to objects, בוחרים אם הקטגוריה אוכפת public access prevention או לא, ואז בוחרים שיטת בקרת גישה לאובייקטים של הקטגוריה.
-
בקטע Choose how to protect object data, מבצעים את הפעולות הבאות:
- בוחרים באחת מהאפשרויות בקטע הגנה על נתונים שרוצים להגדיר לקטגוריה.
- כדי להפעיל מחיקה עם אפשרות שחזור, מסמנים את התיבה Soft delete policy (For data recovery) ומציינים את מספר הימים שבהם רוצים לשמור אובייקטים אחרי המחיקה.
- כדי להגדיר ניהול גרסאות של אובייקטים, מסמנים את התיבה Object versioning (For version control) (ניהול גרסאות של אובייקטים (לניהול גרסאות)), ומציינים את מספר הגרסאות המקסימלי לכל אובייקט ואת מספר הימים שאחריהם הגרסאות הלא עדכניות יפוגו.
- כדי להפעיל את מדיניות שמירת הנתונים על אובייקטים וקטגוריות, לוחצים על תיבת הסימון שמירת נתונים (לצורך תאימות), ואז מבצעים את הפעולות הבאות:
- כדי להפעיל את הנעילה של שמירת אובייקטים, מסמנים את התיבה הפעלת שמירת אובייקטים.
- כדי להפעיל את נעילת הקטגוריה, מסמנים את תיבת הסימון הגדרת מדיניות שמירת נתונים בקטגוריה ובוחרים יחידת זמן ואת משך הזמן של תקופת השמירה.
- כדי לבחור איך להצפין את נתוני האובייקט, מרחיבים את הקטע Data encryption () ובוחרים Data encryption method.
- בוחרים באחת מהאפשרויות בקטע הגנה על נתונים שרוצים להגדיר לקטגוריה.
-
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- לוחצים על יצירה.
גיבוי של סכימת Ranger
משתמשים ב-SSH כדי להתחבר לצומת הראשי של אשכול Managed Service for Apache Spark עם סכימת Ranger. מריצים את הפקודות שבקטע הזה בסשן הטרמינל של SSH שפועל בצומת הראשי.
מגדירים משתני סביבה.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
מחליפים את מה שכתוב בשדות הבאים:
MySQL password: אפשר לפתוח את
/etc/mysql/my.cnfבצומת הראשי של האשכול כדי להעתיק את הסיסמה של MySQL.bucket name: השם של קטגוריית Cloud Storage שבה רוצים לאחסן את סכימת Ranger.
schema filename: מציינים שם קובץ, בלי סיומת שם הקובץ
.sql. סכימת Ranger נשמרת בקובץ הזה בצומת הראשי, ואז נשמרת ב-bucket name ב-Cloud Storage .
הפסקת השירותים של Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
מונעים שינויים בטבלאות של סכימת Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost'; GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;שומרים את סכימת Ranger בקובץ
.sql.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sqlאיפוס ההרשאות של Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost'; GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;מפעילים מחדש את שירותי Hive ו-Ranger.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service
מעתיקים את סכימת Ranger ל-Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
שחזור סכימת Ranger
משתמשים ב-SSH כדי להתחבר לצומת הראשי של Managed Service for Apache Spark באשכול שבו רוצים לשחזר את סכימת האשכול. מריצים את הפקודות שבקטע הזה בסשן הטרמינל של SSH שפועל בצומת הראשי.
מגדירים משתני סביבה.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
מחליפים את מה שכתוב בשדות הבאים:
MySQL password: אפשר לפתוח את
/etc/mysql/my.cnfבצומת הראשי של האשכול כדי להעתיק את הסיסמה של MySQL.bucket name: השם של קטגוריית Cloud Storage שמכילה את סכימת Ranger שנשמרה.
schema filename: שם קובץ הסכימה של Ranger, בלי סיומת שם הקובץ
.sql, שנשמר ב-bucket name ב-Cloud Storage.
הפסקת השירותים של Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
מונעים שינויים בטבלאות של סכימת Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost'; GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;מעתיקים את קובץ הסכימה של Ranger
.sqlב-Cloud Storage לצומת הראשי של האשכול.gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .משחזרים את סכימת Ranger. בשלב הזה, התוכן של סכמת Ranger הקיימת יידרס.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sqlאיפוס ההרשאות של Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost'; GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;מעדכנים את קובצי ההגדרה של Ranger. משנים את מארח מסד הנתונים של Ranger למארח חדש של מסד נתונים בקבצים הבאים עם המאפיינים הבאים:
קובץ מאפיין (property) ranger-hdfs-security.xmlranger.plugin.hdfs.policy.rest.urlranger-yarn-security.xmlranger.plugin.yarn.policy.rest.urlמפעילים מחדש את שירותי Hive ו-Ranger.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service