משימת Hadoop MapReduce עם Bigtable
בדוגמה הזו נעשה שימוש ב-Hadoop כדי לבצע משימת מיפוי וצמצום פשוטה שסופרת את מספר הפעמים שמילה מופיעה בקובץ טקסט. העבודה MapReduce
משתמשת ב-Bigtable כדי לאחסן את התוצאות של פעולת המיפוי. הקוד של הדוגמה הזו נמצא במאגר GitHub GoogleCloudPlatform/cloud-bigtable-examples, בספרייה java/dataproc-wordcount.
מגדירים אימות
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
סקירה כללית של דוגמת הקוד
דוגמת הקוד מספקת ממשק שורת פקודה (CLI) פשוט שמקבל כקלט קובץ טקסט אחד או יותר ושם של טבלה, מוצא את כל המילים שמופיעות בקובץ וסופר כמה פעמים כל מילה מופיעה. הלוגיקה של MapReduce מופיעה במחלקת WordCountHBase.
קודם, רכיב המיפוי מבצע טוקניזציה של התוכן בקובץ הטקסט ויוצר זוגות של מפתח וערך, כאשר המפתח הוא מילה מקובץ הטקסט והערך הוא 1:
לאחר מכן, פונקציית reducer מסכמת את הערכים של כל מפתח וכותבת את התוצאות לטבלת Bigtable שציינתם. כל מפתח שורה הוא מילה מקובץ הטקסט. כל שורה מכילה עמודה cf:count, שמכילה את מספר הפעמים שמפתח השורה מופיע בקובץ הטקסט.