אפשר להתקין רכיבים נוספים כמו Ranger כשיוצרים אשכול של Managed Service for Apache Spark באמצעות התכונה Optional components. בדף הזה מתואר רכיב Ranger.
רכיב Apache Ranger הוא מסגרת קוד פתוח לניהול הרשאות וביקורת בסביבת Hadoop. שרת Ranger admin וממשק המשתמש שלו באינטרנט זמינים ביציאה 6080 בצומת הראשי הראשון של האשכול.
מידע נוסף:
התקנת הרכיב
מתקינים את הרכיב כשיוצרים אשכול Managed Service for Apache Spark. אפשר להוסיף רכיבים לאשכולות שנוצרו באמצעות Managed Service for Apache Spark גרסה 1.3 ואילך. רכיב Ranger דורש התקנה של רכיב Solr.
בקטע גרסאות נתמכות של Managed Service for Apache Spark מפורטת גרסת הרכיב שנכללת בכל מהדורת תמונה של Managed Service for Apache Spark.
שלבי ההתקנה:
הגדרת סיסמה ל-Ranger
admin:- מקצים את התפקיד Cloud Key Management Service CryptoKey Encrypter/Decrypter לחשבון השירות של האשכול. כברירת מחדל, חשבון השירות של האשכול מוגדר כחשבון השירות של Compute Engine שמוגדר כברירת מחדל, והוא נראה כך:
כשיוצרים את האשכול, אפשר לציין חשבון שירות אחר לאשכול.project-number-compute@
- דוגמה:
הקצאת התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות שמשמש כברירת המחדל של Compute Engine:
gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:project-number-compute@ \ --role=roles/cloudkms.cryptoKeyDecrypter
- דוגמה:
הקצאת התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות שמשמש כברירת המחדל של Compute Engine:
- מצפינים את הסיסמה של Ranger
adminבאמצעות מפתח של Key Management Service (KMS). בגרסאות תמונה של אשכולות מגרסה 2.2 ומטה, הסיסמה צריכה לכלול לפחות 8 תווים, עם לפחות תו אלפביתי אחד ותו מספרי אחד. בגרסה 2.2 ואילך של אשכולות תמונות, הסיסמה צריכה להכיל לפחות 8 תווים, כולל לפחות אות גדולה אחת, אות קטנה אחת וספרה אחת.- דוגמה:
- יוצרים את אוסף המפתחות:
gcloud kms keyrings create my-keyring --location=global
- יוצרים את המפתח:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- הצפנה של סיסמת המשתמש של Ranger
admin:echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- יוצרים את אוסף המפתחות:
- דוגמה:
- מעלים את הסיסמה המוצפנת לקטגוריה של Cloud Storage בפרויקט.
- דוגמה:
gcloud storage cp admin-password.encrypted gs://my-bucket
- דוגמה:
- מקצים את התפקיד Cloud Key Management Service CryptoKey Encrypter/Decrypter לחשבון השירות של האשכול. כברירת מחדל, חשבון השירות של האשכול מוגדר כחשבון השירות של Compute Engine שמוגדר כברירת מחדל, והוא נראה כך:
יוצרים את האשכול:
- כשמתקינים את רכיב Ranger, צריך להתקין גם את רכיב Solr.
- רכיב Ranger מסתמך על רכיב Solr כדי לאחסן את יומני הביקורת שלו ולשאול לגביהם שאילתות. כברירת מחדל, הוא משתמש ב-HDFS לאחסון. הנתונים האלה ב-HDFS נמחקים כשמוחקים את האשכול. כדי להגדיר את רכיב Solr לאחסון נתונים, כולל יומני ביקורת של Ranger, ב-Cloud Storage, משתמשים ב
dataproc:solr.gcs.path=gs://<bucket>מאפיין האשכול כשיוצרים את האשכול. הנתונים ב-Cloud Storage נשמרים גם אחרי מחיקת האשכול.
- רכיב Ranger מסתמך על רכיב Solr כדי לאחסן את יומני הביקורת שלו ולשאול לגביהם שאילתות. כברירת מחדל, הוא משתמש ב-HDFS לאחסון. הנתונים האלה ב-HDFS נמחקים כשמוחקים את האשכול. כדי להגדיר את רכיב Solr לאחסון נתונים, כולל יומני ביקורת של Ranger, ב-Cloud Storage, משתמשים ב
- מעבירים את מפתח ה-KMS ואת הסיסמה של כתובות ה-URI של Cloud Storage לפקודה ליצירת אשכול על ידי הגדרת
dataproc:ranger.kms.key.uriו-dataproc:ranger.admin.password.uriמאפייני האשכול. - אפשר גם להעביר את
adminסיסמת המשתמש במסד הנתונים של Ranger דרך URI של קובץ מוצפן ב-Cloud Storage על ידי הגדרתdataproc:ranger.db.admin.password.uriמאפיין האשכול. כברירת מחדל, רכיב Ranger משתמש במכונה של מסד הנתונים MySql שפועלת בצומת הראשי הראשון של האשכול. כדי לשמור את מסד הנתונים של Ranger אחרי מחיקת האשכול, אפשר להגדיר את האשכול לשימוש במופע חיצוני של Cloud SQL. כדי להשתמש במכונה חיצונית של Cloud SQL:
- לפני שיוצרים את האשכול, צריך להגדיר את מכונת Cloud SQL כדי להפעיל את דגל מסד הנתונים
log_bin_trust_function_creatorsעל ידי הגדרתו לערךon. כך אפשר להפעיל את סקריפטים להגדרת סכימת Ranger במהלך יצירת האשכול. אחרי שהאשכול נוצר, אפשר לאפס את הדגל הזה לערךoff. - מגדירים את
dataproc:ranger.cloud-sql.instance.connection.nameמאפיין האשכול למכונת Cloud SQL. - מגדירים את
dataproc:ranger.cloud-sql.root.password.uriמאפיין האשכול ל-URI של Cloud Storage של סיסמת הבסיס המוצפנת במפתח KMS של מכונת Cloud SQL. - מגדירים את
dataproc:ranger.cloud-sql.use-private-ipמאפיין האשכול כדי לציין אם החיבור למכונת Cloud SQL הוא באמצעות כתובת IP פרטית.
כשמשתמשים במכונת Cloud SQL חיצונית, רכיב Ranger משתמש בCloud SQL Auth Proxy כדי להתחבר למכונת Cloud SQL. כדי להשתמש ב-proxy:
- מגדירים את היקף ה-API
sqlservice.adminכשיוצרים את האשכול (ראו אישור בקשות באמצעות OAuth 2.0). אם משתמשים בפקודהgcloud dataproc cluster create, מוסיפים את הפרמטר--scopes=default,sql-admin. - מפעילים את SQL Admin API בפרויקט.
- מוודאים שלחשבון השירות של האשכול יש את התפקיד Cloud SQL Editor (עריכה ב-Cloud SQL).
- מכיוון ששרת ה-proxy ל-Cloud SQL Auth בצומת הראשי יוצר חיבורים יוצאים למכונה של Cloud SQL דרך יציאה 3307, צריך לוודא שחיבורי TCP יוצאים מהצומת הראשי למכונה של Cloud SQL דרך יציאה 3307 מותרים. מידע נוסף זמין במאמר איך פועל שרת ה-Proxy לאימות של Cloud SQL.
- לפני שיוצרים את האשכול, צריך להגדיר את מכונת Cloud SQL כדי להפעיל את דגל מסד הנתונים
מסוףGoogle Cloud
- במסוף Google Cloud , פותחים את הדף Create cluster.
- לוחצים על הגדרה נוספת כדי להרחיב את הקטע.
- עורכים את הרכיבים האופציונליים.
- בחלונית שנפתחת, מסמנים את תיבות הסימון של Ranger ו-Solr ולוחצים על שמירה.
CLI של gcloud
כדי ליצור אשכול של Managed Service for Apache Spark שכולל את רכיב Ranger, משתמשים בפקודה gcloud dataproc clusters create cluster-nameעם הדגל
--optional-components.gcloud dataproc clusters create cluster-name \ --optional-components=SOLR,RANGER \ --region=region \ --enable-component-gateway \ --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \ ... other flags
API בארכיטקטורת REST
מציינים את הרכיבים Ranger ו-Solr בשדה SoftwareConfig.Component כחלק מבקשת clusters.create של Dataproc API. בנוסף, צריך להגדיר את מאפייני האשכול הבאים בשדה SoftwareConfig.Component.properties:
dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"-
dataproc:ranger.admin.password.uri: "gs://my-bucket/admin-password.encrypted"
- כשמתקינים את רכיב Ranger, צריך להתקין גם את רכיב Solr.
לוחצים על הכרטיסייה Web interfaces (ממשקי אינטרנט). בקטע Component gateway, לוחצים על Ranger כדי לפתוח את ממשק האינטרנט של Ranger. מתחברים באמצעות שם המשתמש של אדמין Ranger (לדוגמה, admin) והסיסמה.
יומנים של אדמין ב-Ranger
יומני Ranger admin זמינים בLogging כיומני ranger-admin-root.