כל מה שרציתם לדעת על האדופ (Hadoop)

אז מה זה האדופ, למי זה טוב, את מי כולל פרויקט-העל הזה ואיך תארזו את זה עבורכם?

הפוסט נכתב על ידי אופיר מנור, יועץ טכנולוגי GREENPLUM ב-EMC ישראל.

יח"צ

האדופ! האדופ! בכל מקום אנשים מנסים לפענח מה זה האדופ, ואכן – לדעתי זה אחד מהדברים המדוברים והחמקמקים ביותר בתעשיה. אז מה זה האדופ, איזה בעיות זה אמור לפתור, מאיפה הוא הגיע ומהם הרכיבים המרכזיים שלו?

האדופ הוא פרוייקט-על הכולל סט של פרוייקטים בקוד פתוח לבניית תשתית מבוזרת לעיבוד מקבילי, לרוב עבור מידע לא מובנה כגון דפי HTML. התשתית הזו מאפשרת לחבר עשרות, מאות ואלפי שרתים פשוטים וזולים לכדי סביבה מחשובית אחת ולפתור בעזרתה בעיות עתירות CPU ועתירות I/O.

קצת היסטוריה

בראשית היתה גוגל. גוגל התמחתה מאז ומעולם בבניה של ישומים מבוזרים על אלפי מחשבים, כולל כמובן מנוע האינדוקס שלה. בסוף 2004 גוגל פרסמה סט מאמרים המפרט את פלטפורמת המחשוב העדכנית שלה. דאג קאטינג, שעבד על פרוייקט אינדוקס מסמכים בקוד פתוח בשם Lucene, החליט לממש בפרוייקט שלו את הארכיטקטורה הזו כדי לאפשר לו מקבול על מספר שרתים, וכך נוצר האדופ. האדופ קרוי, כמובן, על שם בובת הפיל הצהובה של הבן של דאג.

יאהו גייסה את דאג בתחילת 2006 כדי לשכלל את הפרוייקט שלו כך שהיא תוכל להשתמש בו כדי לאנדקס את כל האינטרנט, ושיחררה את התוצרים בקוד פתוח. מאז החלה הצמיחה הדרמטית של השימוש בתשתית הזו והתרומה שלה.

מה כלול בהאדופ?

cc by flickr, kodomut

האדופ כולל ליבה של זוג פרוייקטי תשתית, אחד לאחסון מבוזר ואחד לעיבוד מבוזר. מסביבם נוצרו (ועדיין נוצרים) סט גדול של פרוייקטים שונים המשתמשים בתשתית על מנת להתמודד עם עולמות שונים של עיבוד מבוזר. נעבור על הפרוייקטים המרכזיים בקצרה:

HDFS (וHadoop Distributed File System) – זוהי תשתית האחסון המבוזרת של האדופ. מדובר ב-File System שמטרתו לשמור קבצים גדולים ולאפשר כתיבות סדרתיות גדולות וקריאות סדרתיות גדולות בצורה יעילה. השיטה שבה הוא עובד היא לחלק כל קובץ גדול לחתיכות בינוניות (למשל, של 64MB) ולפזר את החתיכות השונות על פני שרתים רבים. כל חתיכה נשמרת מספר פעמים לצורך שרידות (לרוב בשלושה עותקים על פני שני ארונות שרתים שונים). ישנו שרת אחד מיוחד בשם Name Node המנהל את המיפוי בין הקבצים וחתיכות הקבצים לבין השרתים שעליהם הנתונים מאוחסנים (הנקראים Data Nodes).

MapReduce – ממשק תכנותי לכתיבת תוכניות מקביליות. המתכנת כותב זוג פונקציות פשוטות בג'אווה (אחת בשם map והשניה בשם reduce) המטפלות באלמנט בודד של קלט, למשל, דף HTML בודד. התשתית מבצעת את כל השלבים לצורך עיבוד מקבילי של זוג הפונקציות על כל קבצי הקלט (שישבו מן הסתם ב-HDFS), על מספר רב של שרתים, ומטפלת לבד בתזמון העבודה וטיפול בשגיאות בזמן ריצה (כגון נפילת שרתים, דיסקים או רשת). הדבר מאפשר לכתוב תהליכי batch מקביליים בצורה פשוטה יחסית. טכנית, ישנו רכיב בשם Job Tracker המתזמן את הרצת תהליכי ה-batch, שכל אחד מהם מחולק למשימות קטנות המנוהלות על ידי Task Trackers.

עם הזמן, חברות שונות (בעיקר יאהו ופייסבוק) כתבו בעצמם שכבות תוכנה נוספות מעל HDFS ו-MapReduce כדי להקל על הפיתוח והתפעול של הסביבות שלהם או כדי לנצל את התשתית המקבילית כדי לפתור בעיות נוספות.

מספר דוגמאות

  • Pig – שכבת תוכנה שמטרתה לפשט כתיבת תוכניות MapReduce שפותחה במקור על ידי Yahoo! היא כוללת שפת High-Level בשם Pig Latin להגדרת תוכניות ריצה אשר מתורגמות אוטומטית לתוכניות MapReduce. שימושית למשל לכתיבת תוכנית ETL מעל האדופ ומקטינה למינימום את הצורך לכתוב בג'אווה.
  • ZooKeeper – תשתית תיאום/ סנכרון נתונים מבוזרת שמספקת אמינות וזמינות גבוהה. המידע ב-ZooKeeper יושב כולו בזיכרון (ומגובה על הדיסק בין מספר שרתים), והוא מיועד בעיקר לשיתוף נתוני קונפיגורציה אפליקטיביים בין שרתים ב-cluster ומאפשר לאפליקציות להרשם כדי לקבל הודעות על שינויי קונפיגורציה.
  • Hive – שכבת מחסן נתונים שפותחה במקור על ידי פייסבוק. היא כוללת שפה בסיסית דמויית SQL בשם HiveQL אשר מתורגמת בזמן ריצה לסט תוכניות MapReduce. יכולה להקל על כלי BI לתחקר מידע שנמצא בהאדופ או לאפשר דוחות פשוטים, אך עדיין רחוקה מלספק את הביצועים והיכולות של פתרונות מחסני נתונים יעודיים בתחום ה-MPP כמו Greenplum Database.
  • HBase – שכבת אחסון נתונים מבוזרת של רשומות (Key-Value Pairs) בתוך טבלאות, שנכתבה במקור על ידי Powerset (שנקנתה בהמשך על ידי מיקרוסופט). היא ממומשת ישירות מעל HDFS, תומכת בעמודות דינמיות (כלומר, אין צורך להגדיר מראש את רשימת העמודות בכל טבלה) ומאפשרת טעינה מהירה מאוד ובעיקר – אחזור מהיר לפי המפתח הראשי של הטבלה. ל-HBase יש API יעודי פשוט (לא SQL) ובנוסף, הטבלאות שלו יכולות להיות המקור או היעד של תוכניות MapReduce עבור ניתוחים גדולים ואפילו של שאילתות Hive.למשל-וHBase – משמש  כתשתית ה-messaging של פייסבוק, לאחסון כל ההודעות והצ'אט של האתר.
  • Mahout – שכבת אנליטית המתמקדת במימוש מקבילי של אלגוריתמי Data Mining, בעיקר מסביב ל-Machine Learning. האלגוריתמים מתורגמים אוטומטית לתוכניות MapReduce. דרך אגב, הפרוייקט התחיל לפני כעשור כחלק מפרוייקט Lucene והמילה "מאהוט" מגיעה מהשפה ההודית ומשמעותה היא, אגב, רוכב פילים.
  • Oozie – מנוע Workflow שנכתב על ידי יאהו כדי לנהל את התזמון של תוכניות MapReduce.

טוב, תארוז לי אחד האדופ

cc by flickr, kodomut

אין בעיה. ישנן כמה דרכים לאריזה. הדרך הראשונה היא לארוז לבד – להוריד מהאתר של Apache את כל אחד המוצרים (ולבחור כמובן איזו גרסה של כל פרוייקט) ואז להתקין ולקנפג כל אחד מהם. הדרך השניה (והנפוצה יותר) היא להשתמש בהפצה קיימת של האדופ, שמספקת התקנה פשוטה, רמת אמינות מסויימת, יכולת לקבל תיקוני באגים, כלי ניהול וכיוצא בזה. ההפצה המסחרית הראשונה היתה קלאודרה, והיום ישנם הפצות נוספות. למשל, גרינפלאם מספקת זוג הפצות של האדופ:

  • Greenplum HD – הפצה המבוססת ישירות על Apache Hadoop, כלומר, על גרסת הקוד הפתוח, לה אנחנו מביאים יציבות ואמינות בעזרת Analytic Workbench – סביבת בדיקות של האדופ בת 1000 שרתים שהקמנו, וכלים משלימים לניהול הסביבה ולעבודת האנליסטים. ההפצה כוללת אינטגרציה אופציונלית עם EMC Isilon המאפשרת שיפורי ביצועים, זמינות ונוחות.
  • Greenplum MR – הפצה יעודית התואמת ל-Apache Hadoop אך מוסיפה לה שיפורים דרמטיים בתחום התשתית (בעיקר סביב HDFS) כולל זמינות גבוהה, שיפורי ביצועים, snapshots ויכולות DR, תמיכה ב-NFS ועוד.

לסיכום, האדופ הוא שם קוד לסט גדול של טכנולוגיות. המשותף להם הוא הרצון לרתום כמות גדולה של שרתים פשוטים כדי לבצע משימות מחשוביות בצורה מקבילית. האדופ צמח מעולם של מידע לא מובנה, בעיקר ניתוח של כמות עצומה של דפי אינטרנט, שם הוא הוכיח את יעילותו בפתירת בעיות של Big Data. כיום ארגונים רבים מנסים ליישם את הטכנולוגיה בעולמות חדשים כדי לנסות ולהנות מיכולות הגדילה והעלות הנמוכה ליחידה של הפיתרון.


הפוסט נכתב על ידי EMC


EMC Forum, כנס הלקוחות השנתי של חברת EMC בישראל, יתקיים ב-24 באוקטובר. האירוע מהווה הזדמנות ייחודית להתחבר עם מומחים ממגוון רחב של חברות מובילות בתחום ה-IT. באירוע יועברו הרצאות מפי בכירים בתעשייה מישראל ומחו"ל, בראשם שניים מבכירי מטה החברה: בריאן גאלאגר, נשיא חטיבת האחסון הארגוני ב-EMC, וצ'אד סקאק, סגן נשיא בכיר להנדסה, שיגיעו לכנס לשאת את נאומי הפתיחה, ויפגשו עם לקוחות. התכוננו לשנות את הדרך בה אתם רואים את העתיד של הארגון ושל תחום ה-IT:

  • גלו מדוע מחשוב ענן ווירטואליזציה הם המפתח ושליטה במציאות החדשה של ה-IT
  • גלו כיצד אתם יכולים לפענח את הערך של ביג דאטה עבור הארגון שלכם
  • גלו  את הידע, המיומנויות והתמיכה שיסייעו לכם להתמודד עם האתגרים שלפניכם

הרשם עכשיו ל-EMC Forum והצטרף אלינו ולשותפים שלנו, יחד עם מנהלי מערכות מידע, מנהלי תשתיות ואחסון, מנהלים ועובדים בכירים בתעשיית ה-IT.

כתב אורח

אנחנו מארחים מפעם לפעם כותבים טכנולוגים אורחים, המפרסמים כתבות בתחומי התמחות שלהם. במידה ואתם מעוניינים לפרסם פוסט בשמכם, פנו אלינו באמצעות טופס יצירת קשר באתר.

הגב

5 Comments on "כל מה שרציתם לדעת על האדופ (Hadoop)"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
עידן
Guest

יש לכם את זה ביותר לא ברור ?

יוגי
Guest

חחח עידן. 1+

אסף
Guest

בראשית הייתה נאסא, גוגל הגיעה לביזור הרבה שנים אחר כך

מיכאL
Guest

מעניין, תודה.

ליאור בר-און
Guest

פוסט מצויין. תודה.

wpDiscuz

תגיות לכתבה: