משימת Hadoop MapReduce עם Bigtable
בדוגמה הזו נעשה שימוש ב-Hadoop כדי לבצע עבודת MapReduce פשוטה שסופרת את מספר הפעמים שמילה מופיעה בקובץ טקסט. משימת MapReduce משתמשת ב-Bigtable כדי לאחסן את התוצאות של פעולת המיפוי. הקוד של הדוגמה הזו נמצא במאגר GoogleCloudPlatform/cloud-bigtable-examples ב-GitHub, בספרייה 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 class.
קודם, פונקציית mapper מבצעת טוקניזציה של התוכן בקובץ הטקסט ויוצרת זוגות של מפתח-ערך, כאשר המפתח הוא מילה מקובץ הטקסט והערך הוא 1:
לאחר מכן, פונקציית reducer מסכמת את הערכים של כל מפתח וכותבת את התוצאות לטבלת Bigtable שציינתם. כל מפתח שורה הוא מילה מקובץ הטקסט. כל שורה מכילה עמודה של cf:count, שמכילה את מספר הפעמים שמפתח השורה מופיע בקובץ הטקסט.