יצירת אשכול Hadoop
אתם יכולים להשתמש ב-Managed Service for Apache Spark כדי ליצור מכונות של Compute Engine שיוכלו להתחבר למופע Bigtable ולהריץ משימות Hadoop. בדף הזה מוסבר איך להשתמש ב-Managed Service for Apache Spark כדי להפוך את המשימות הבאות לאוטומטיות:
- התקנה של Hadoop ושל לקוח HBase ל-Java
- הגדרת Hadoop ו-Bigtable
- הגדרת היקפי ההרשאות הנכונים ל-Bigtable
אחרי שיוצרים אשכול של Managed Service for Apache Spark, אפשר להשתמש באשכול כדי להריץ משימות Hadoop שקוראות נתונים מ-Bigtable וכותבות נתונים ל-Bigtable.
המאמר הזה מיועד למשתמשים שכבר מכירים את Hadoop. מידע נוסף על Managed Service for Apache Spark זמין במסמכי התיעוד של Managed Service for Apache Spark.
לפני שמתחילים
לפני שמתחילים, צריך לבצע את המשימות הבאות:
- יוצרים מופע Bigtable. חשוב לרשום את מזהה הפרויקט ואת מזהה מופע Bigtable.
-
מפעילים את Cloud Bigtable API, Cloud Bigtable Admin API, Managed Service for Apache Spark ו-API בפורמט JSON ב-Cloud Storage.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים - מוודאים שחשבון המשתמש שלכם משויך לתפקיד שכולל את ההרשאה
storage.objects.get.פותחים את הדף IAM במסוף Google Cloud .
- מתקינים את Google Cloud CLI. פרטים נוספים מפורטים בהוראות ההגדרה של ה-CLI של gcloud.
-
מתקינים את Apache Maven, שמשמש להרצת משימת Hadoop לדוגמה.
ב-Debian GNU/Linux או ב-Ubuntu, מריצים את הפקודה הבאה:
sudo apt-get install maven
ב-RedHat Enterprise Linux או ב-CentOS, מריצים את הפקודה הבאה:
sudo yum install maven
ב-macOS, מתקינים את Homebrew ואז מריצים את הפקודה הבאה:
brew install maven
- משכפלים את מאגר GitHub GoogleCloudPlatform/cloud-bigtable-examples, שמכיל דוגמה למשימת Hadoop שמשתמשת ב-Bigtable:
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
יצירת קטגוריה של Cloud Storage
Managed Service for Apache Spark משתמש בקטגוריית Cloud Storage כדי לאחסן קבצים זמניים. כדי למנוע התנגשויות בשמות של קבצים, צריך ליצור מאגר חדש ל-Managed Service for Apache Spark.
שמות של קטגוריות ב-Cloud Storage חייבים להיות ייחודיים באופן גלובלי בכל הקטגוריות. בוחרים שם של מאגר שסביר שיהיה זמין, למשל שם שכולל את שם הפרויקט שלכם. Google Cloud
אחרי שבוחרים שם, משתמשים בפקודה הבאה כדי ליצור קטגוריה חדשה של אחסון בענן, ומחליפים את הערכים שבסוגריים בערכים המתאימים:
gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]
יצירת אשכול של Managed Service for Apache Spark
מריצים את הפקודה הבאה כדי ליצור אשכול Managed Service for Apache Spark עם ארבעה צמתי עובד, ומחליפים את הערכים בסוגריים בערכים המתאימים:
gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
--region [region] --num-workers 4 --master-machine-type n1-standard-4 \
--worker-machine-type n1-standard-4
בgcloud dataproc clusters createמאמרי העזרה מופיעות הגדרות נוספות שאפשר להגדיר. אם מופיעה הודעת שגיאה שכוללת את הטקסט Insufficient 'CPUS' quota, נסו להגדיר ערך נמוך יותר לדגל --num-workers.
בדיקת האשכול של Managed Service for Apache Spark
אחרי שמגדירים את האשכול של Managed Service for Apache Spark, אפשר לבדוק את האשכול על ידי הפעלת עבודת Hadoop לדוגמה שסופרת את מספר הפעמים שמילה מופיעה בקובץ טקסט. העבודה לדוגמה משתמשת ב-Bigtable כדי לאחסן את תוצאות הפעולה. אתם יכולים להשתמש במשימת הדוגמה הזו כהפניה כשאתם מגדירים משימות Hadoop משלכם.
הרצת משימת Hadoop לדוגמה
- בספרייה שבה שיכפלתם את המאגר ב-GitHub, עוברים לספרייה
java/dataproc-wordcount. מריצים את הפקודה הבאה כדי ליצור את הפרויקט, ומחליפים את הערכים שבסוגריים [ ] בערכים המתאימים:
mvn clean package -Dbigtable.projectID=[PROJECT_ID] \ -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]מריצים את הפקודה הבאה כדי להתחיל את עבודת Hadoop, ומחליפים את הערכים שבסוגריים בערכים המתאימים:
./cluster.sh start [DATAPROC_CLUSTER_NAME]
כשהעבודה מסתיימת, מוצג השם של טבלת הפלט, שהוא המילה WordCount ואחריה מקף ומספר ייחודי:
Output table is: WordCount-1234567890
אימות התוצאות של עבודת Hadoop
אפשר גם להשתמש ב-
cbt CLI
כדי לוודא שהמשימה של Hadoop בוצעה בהצלחה:
-
פותחים חלון טרמינל ב-Cloud Shell.
- מתקינים את
cbtCLI :gcloud components updategcloud components install cbt - סורקים את טבלת הפלט כדי לראות את התוצאות של עבודת Hadoop, ומחליפים את
[TABLE_NAME]בשם של טבלת הפלט:cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
אחרי שמוודאים שהאשכול מוגדר בצורה נכונה, אפשר להשתמש בו כדי להריץ משימות Hadoop משלכם.
מחיקת אשכול Managed Service for Apache Spark
כשמסיימים להשתמש באשכול Managed Service for Apache Spark, מריצים את הפקודה הבאה כדי לכבות ולמחוק את האשכול. מחליפים את [DATAPROC_CLUSTER_NAME] בשם של אשכול Managed Service for Apache Spark:
gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]
המאמרים הבאים
- מידע נוסף על Managed Service for Apache Spark
- מתחילים לעבוד עם לקוח HBase ל-Java.