h
מה זה Hadoop – תוכן עיניינים:
- נגדיר קודם מה זה Big Data.
- מהן טכנולוגיות NoSQL?
- טכנולוגיות NoSQL מאופיינות ע”י שני דברים שלא היו לנו בעבר
- Hadoop in a Nutshell – מה זה Hadoop ואיך זה עובד?
- יתרונות נוספים של Spark
- איך נראה DataWarehouse של הדור הבא?
- Hadoop Ecosystem
- איך הופכים למומחה Big Data או מומחה Hadoop?
- הקורסים שנאיה קולג’ מציעה
עולם מסדי הנתונים הרלציוניים מאז שנות ה-70 מהווה את האופן המסורתי לשמירה וניהול מידע. המערכות המובילות של יצרניות כמו Oracle ו-Microsoft מציעות יכולות מדהימות של התחדשות וגדילה, יכולות להתאים את עצמן ולהסתגל למהפכות עצומות בניהול מידע שהיה בעשור אחרון.
אבל בשנים אחרונות אנחנו רואים שהמערכות אלו הגיעו לסוג של קצה ולא הצליחו להתמודד עם המאפיינים החדשים של דאטה ומערכות מידע, ואז נכנסו טכנולוגיות חדשות – טכנולוגיות לעולם ה-Big Data. עולם הרלציוני לא הולך להיעלם, יחד עם זאת טכנולוגיות ה-Big Data בעלות יתרון משמעותי יותר של גדילה והתפתחות בקצב מדהים.
אחת הטכנולוגיות המובילות בתחום ביג דאטה הינה מערכת NoSQL – Hadoop. ועליה נדבר במאמר זה.
לצפייה בוובינר מקצועי אודות הכשרת – הכשרת מומחה Big Data Hadoop:
רוצים ללמוד קורס Cloudera Hadoop and Apache Spark? היתקשרו עכשיו ויועצת לימודים תיתן לכם את כל הפרטים:
נגדיר קודם מה זה Big Data.
כשמדובר ב-Big Data לא מדובר בטכנולוגיה, אלא זהו מושג שיווקי שבא לתאר אתגר או בעיה שנוצרה ב-10 שנים אחרונות. מהו האתגר? בעולם החדש יש כמויות עצומות של מידע שלא דמיינו אותם לפני 10-20 שנים, המידע הזה גם Unstructured – כלומר הוא לא מתאים לטעינה בטבלאות בבסיסי נתונים רלציוניים, אלא מדובר בטוויטים, הודעות בפרוסמים, תמונות, טקסטים, מידע מסנסורים וחיישנים. ולבסוף זהו מידע שמגיע בקצב מאוד מאוד מהיר.
כאשר ישנן כאלו כמויות של מידע נשאלת השאלה, איך לאחסן אותו ולעבד כדי להפיק תובנה עסקית מהמידע הזה?
ארגון שעומד בפני האתגר של Big Data מאפיין את הדאטה שלו באחת משלושת הקטגוריות שלהלן:
-
Volume
נפח/כמות – כמות גדולה מאוד של מידע שיש לנהל אותו, יתרה מזה, ככל שאנו אוספים יותר ויותר מידע – זה עוזר אף יותר לנהל אותו ולהפיק תובנות ממנו.
Database רלציוניים לא יכולים לאחסן כמויות גדולות של מידע, המערכות הללו לא נועדו לכך, ואם מצליחים – זה מאוד מאוד יקר, בנוסף לכך יכולת לעבד מידע בכמויות עצומות לא קיימת.
לדוגמא, גם אם יש בסיס נתונים של 10TB וזה נשמע Database גדול – תהליך שליפה של נתונים יכול לקחת שעות, וזה לא ממש עוזר לארגון.
כדי להתמודד עם כמויות דאטה נוספות בעבר היו מפנים את המקום עבורו וזורקים מידע ישן. היום לא זורקים מידע, יתרה מזה – שומרים את המידע של עשרות שנים אחורה כדי להפיק ממנו תובנות עסקיות. היום Hadoop זו פלטפורמה מדהימה – שגם זולה וגם מאפשרת לאחסן את כל הכמות שנדרשת.
אנחנו חוזרים על מונח “כמויות גדולות של מידע”, אבל כמה זה באמת?
לדוגמא: פייסבוק משנת 2014 ועד היום מנהלת לפחות 300PB של מידע (שזה בחישוב קל 314,572,800GB), וכל יום מתווסף 50.5PB של נתונים. אלה נפחים עצומים.
עוד דוגמא: AIRBUS – בכל מטוס כל המערכות ממוחשבות, המון אפליקציות שרצות במקביל, 10 מיליון שורות של קוד, מייצרים 10TB של מידע כל חצי שעה, טיסה מלודון לניו יורק מייצרת 640TB.
ועוד דוגמאות רבות כמו טוויטר שמייצרת 15TB ביום והבורסה של ניו יורק שמייצרת 1TB ביום.
אז צריך להבין שיש לאחסון ולנהל את המידע הזה, גם כדי לייעל תהליכים, גם כדי לזהות בעיות אבל מעל הכל – כדי להפיק תובנות מהמידע הזה בהמשך.
-
Velocity
קצב של המידע זורם. יש לנו מאות אלפי טרנזקציות בשניה, היום ב-60 שניות נוצרות כמויות עצומות של מידע שנכנס לארגון.
ועם התפתחות בתחום IoT – Internet of Things – המצב הולך ו”מחמיר” עוד יותר, כאשר לא רק האנשים מייצרים מידע באמצעות שימוש מאסיבי באינטרנט או טכנולוגיות, אלא גם “דברים” מזרימים מידע למערכות, סנסורים, חיישנים, מוצרים שונים שמחוברים לאינטרנט ועוד.
ברור שמצב הזה מצריך שימוש במערכות שיודעות להתמודד עם מאות טרנזקציות לשניה. הטכנולוגיות החדשות של Big Data שפותחו בעשור אחרון יודעות לעשות זאת.
-
Variety
מגוון של סוגי דאטה. קודם כל מדובר כאן במידע שהוא Unstructured – מידע לא מובנה, שלא ניתן להכניס אותו לטבלה רגילה. זהו מידע ממקורות שונים, מסוגים שונים, בפורמטים שונים.
דוגמא קלאסית היא תיעוד של שיחה בין נציג ולקוח. אם פעם נציג היה מתעד את השיחה עם הלקוח באמצעות הקלדה בתוך המערכת מידע, היום ברגע שנציג מסיים שיחה עם הלקוח, מאחורי הקלעים עובדת תוכנה שהופכת את השיחה המוקלטת לטקסט ומכניסה אותה למסד נתונים, תוך כדי עובד גם תהליך עיבוד הנתונים האלה, כך שאם ב-10 דקות אחרונות נכנסות הרבה שיחות של לקוחות מתלוננים, היום מערכות יודעות לנתח את המידע הזה בזמן אמת ולהציג את המסקנות בהקשר של לקוחות מתלוננים, ואף לחזות נטישה של לקוח/ות.
היום מדברים כבר על ה-V הנוספים, שמאפיינים את אתגר ה-Big Data, אבל השלושה שתיארנו הינם אבני היסוד של האתגר ובהחלט לרוב מספיקים על מנת לזהות את הבעיה בארגון כלשהו.
מהן טכנולוגיות NoSQL?
כאשר מדברים על Big Data מדברים על הבעיה או האתגר העסקי והטכנולוגי, ולכן פותחו כלים כדי לתת מענה והם מערכות ה-NoSQL – סט פתרונות שנולדו על מנת להתגבר על האתגר של Big Data. קיימות היום מאות טכנולוגיות, כל אחת תופסת נישה קצת שונה, והן מתמודדות עם האתגרים שיש לנו היום בעבודה עם מידע.
אם בעבר Database רלציוני ידע לתת מענה לכל הצרכים כולל אחסון, שמירה, עיבוד המידע, מערכות NoSQL מכוונות מטרה מסוימת ולכל אחת יש התמחות.
למשל Hadoop – היא פלטפורמה לעיבוד מידע בנפחים גדולים, או MongoDB – פלטפורמה לעבודה עם מסמכי JSON, מערכות כמו HBASE ו-Cassandra – הינן טכנולוגיות קלאסיות שיודעות לעבוד עם נפחים עצומים של מידע שנכנס בקצבים מהירים. ויש עוד מאות נוספות.
היום עם התפתחות בעולם טכנולוגיות המידע, מפת הכלים שנמצאים בארגון יותר מורכבת וללא ספק דורשת הרבה חשיבה ובחינה מעמיקה של המצב בו נמצא כל ארגון.
אם בעבר היה לנו Database רלציוני אחד וכולם עבדו מולו, היום רואים יותר ויותר שארגונים שמשלבים טכנולוגיות מרובות, Database רלציוני עדיין יהיה קיים, אבל יהיו גם Hadoop שבו מאחסנים את המידע ומעבדים אותו, אם צריך לנהל קבלי JSON או אחרים – נתשמש בטכנולוגיות Document Store כגון MongoDB, אם צריך מידע עם אופי של OLTP – גישה מהירה לפי מפתח – ישתמשו HBASE או Cassandra. ועוד דוגמאות.
באופן כללי טכנולוגיות NoSQL מאופיינות ע”י שני דברים שלא היו לנו בעבר:
- הכלים האלה הינם כלי Open Source – כלי קוד פתוח. זה אומר שיש קהילה שמפתחת כלים כאלה ואחרים, מכל העולם, ויש לזה יתרון עצום. בטכנולוגיות Big Data אנחנו מדברים על קרן Apache שמנהלת את הכלים, מאחדת תרומה של המפתחים מכל העולם לטובת שיפורים ועדכונים בכלים אלה, ולמעשה מציעה קהילה תומכת בכל שאלה טכנית.
- מערכות מבוזרות – Distributes Systems – מערכות שמכילות אוסף של מכונות שעובדות בו זמנית כדי לתת פתרון.
Google היא החברה הראשונה שהצליחה לפתח מערכות כאלו כשחיפשה פתרון לאינדוקס של האינטרנט. בתמונה למטה אנחנו רואים שמ- Database רלציוני אחד עם Storage אחד גדול, חברה שהולכת וגדלה עוברת לאוסף מכונות שעובדות יחד כדי לאחסן וגם לעבד את המידע.
מדובר במהפכה בתחום הנתונים! למעשה, כל מכונה מתפקדת בפני עצמה, היא לא חזקה במיוחד, או לא יציבה במיוחד, עלול להיות מצב שמכונה קורסת, אין סטורג’ גדול לכל אחת מהמכונות, אבל אם לוקחים 20 מכונות כאלו, 200 או 2000, אנחנו מקבלים יכולת מדהימה של אחסון מידע (וסטורג’ זול כי צריך דיסקים רגילים) ואם רוצים לגדול עוד – אין בעיה – פשוט מוסיפים עוד מכונות.
אנחנו מתמקדים ב- Hadoop כפלטפורמה מובילה היום לאחסון ועיבוד נתונים.
מעבר לזה שהיא מערכת שיודעת לאחסן ולעבד מידע בכמויות גדולות, היתרון הנוסף הגדול שלה – הוא עלויות נמוכות לכלי טכנולוגי, למעשה, אין צורך יותר לרכוש Storage יקרים, רשיונות, חומרה נוספת. ללא ספק זהו פתרון מדהים.
Hadoop היא פלטפורמה סקיילבילית (Scalable) זולה (במונחים של עלויות חומרה בארגון גדול), שיכולה לגדול בקלות, עם יכולות אחסון ועיבוד של מידע בנפחים גדולים.
היא חסינה מנפילות (אם יש 100 מכונות ואחת נפלה, המערכת עדיין יודעת לתמוך בהמשכיות ועבודה תקינה) כי מכונות אלו עובדות ביחד אבל אף מכונה לא מכילה מידע בלעדי, המידע מחולק בין כל המכונות. הכל בנוי בשביל שרידות.
הרבה פעמים קוראים ל-Hadoop כ- Data Lake ארגוני – שזהו מאגר מידע ענק, וכל המידע בארגון נשפח לתוכו.
Hadoop in a Nutshell – מה זה Hadoop ואיך זה עובד?
Hadoop בנויה על שני עקרונות טכנולוגיים: את המידע מאחסנים ב-HDFS – שזה ה-File System של Hadoop, ומעבדים אותו עם Map/Reduce בתהליך עיבוד מבוזר.
מהו איחסון מבוזר?
HDFS – Hadoop Distributed File System – המידע מחולק לבלוקים, ומפוזר ל-Nodes מרובים. לכל בלוק של מידע יש יותר מעותק אחד, כדי שאם פתאום Node אחד נפל ולא זמין – יש עוד Node עם אותו המידע והוא זמין בכל מקרה. יתרון נוסף לפתרון זה – ביצועים ברמה גבוהה מאוד, מפני שכאשר יש הרבה מאוד דיסקים והמידע מחולק ביניהם, וזמן עיבוד יורד משעות לדקות ואף שניות.
למשל, ל- Yahoo יש 4500 Nodes (החברה הינה אחת התורמים הגדולים ביותר להתפתחות ה-Hadoop).
מהו עיבוד מבוזר?
Map/Reduce – עם כל ההתפתחויות שקרו בשנים אחרונות בתחום זה, Map/Reduce נחשב למנוע הכי נפוץ שיש, יציב ומוכח בתעשיה. יחד עם זאת, עם המשך התפתחות בתחום וכמויות דאטה שהולכות וגדלות, פותח בשנים אחרונות מנוע חדש – Spark.
Spark – זהו למעשה הדור הבא של עיבוד מידע, הרבה יותר יעיל מ-Map/Reduce, הוא יותר מהיר, יודע לנצל זכרון בצורה מיטבית, הרבה יותר קל ונוח לפתח בו, ניתן לעשות בו עיבודים של Machine Learning.
בשני הכלים עובדים עם אחת משפות פיתוח עיליות: Java, Scala או Python. ב-Spark ניתן לעבוד גם עם שפת R. מדובר בפיתוח לעיבוד של מידע (בדומה ל-PL/SQL או TSQL ב- Database רלציוני).
מפתחי אפליקציות ומדעני נתונים משלבים את Spark ביישומים שלהם כדי לבצע שאילתות, לנתח ולהמיר נתונים במהירות.
הצרכים הנפוצים ביותר שפותרים באמצעות Spark הם: ETL ו- SQL מול מקורות מידע מגוונים ו-Datasets גדולים, עיבוד נתונים הזורמים מחיישנים, IoT , מערכות פיננסיות גדולות, וכמובן Machine Learning.
יתרונות נוספים של Spark:
- גמישות – האפשרות לייצר מאפס פתרון מותאם צורך.
- תומך בשליפות SQL – Spark SQL.
- מספק עיבוד בזמן אמת – Spark Streaming – real-time streaming analytics.
- יכול לרוץ על Hadoop Cluster או בענן, או על Cluster משל עצמו.
- יכול לגשת למקורות מידע מאוד מגוונים: HDFS, Apache Cassandra, Apache HBase, Amazon S3 cloud-based storage
מגוון רחב של יצרניות טכנולוגיות מיהרו לתמוך ב- Spark, מתוך הבנה שיש כאן הזדמנות להרחיב את המוצרים הקיימים שלהם בתחום Big Data באזורים שבהם Spark מספק ערך אמיתי, כגון שאילתה אינטראקטיבית ו- Machine Learning.
חברות ידועות כמו IBM ו- Huawei השקיעו סכומים משמעותיים בטכנולוגיה, ומספר של חברות סטארט-אפ שבונות מוצרים שתלויים ב-Spark הולך וגדל.
לדוגמה, בשנת 2013 צוות Berkeley , האחראי ליצירת Spark ייסדו את חברת Databricks , המספקת פלטפורמת נתונים מקצה לקצה המופעלת על ידי Spark. החברה ממומנת היטב, לאחר שקיבלה 247 מיליון דולר אחרי 4 סבבי השקעה בשנים 2013, 2014, 2016 ו- 2017, ועובדי Databricks ממשיכים למלא תפקיד חשוב בשיפור והרחבת הכלי בפרויקט קוד פתוח Apache Spark.
אז, אם נחזור ל-Hadoop ותהליך עיבוד מבוזר, נציין שהוא מחולק בגדול לשני שלבים עיקריים:
- ה-Map מעבד נתונים מקומית בכל Node (למשל מידע אודות מכירות פר עובד, או פר עיר)
- ה- Reduce מבצע אגריגציות שונות (חתכים ושילוב של מידע בהתאם לצורך – חתך של עובדים ספציפיים)
איך נראה DataWarehouse של הדור הבא?
יש המון ארכטיקטורות אפשריות ולהלן דוגמא אחת מני רבות. את המידע מעבירים כמו שהוא לתוך Hadoop, גם אנליסטים יכולים לשמור את כל העיבודים ואנליזות על המידע, או כל לכי BI שיודע לעבוד מול Hadoop, לאחר מכן רץ תהליך של עיבוד, פילטור, אגרגציות, טיוב וארגון המידע. ואחרי כל זה ניתן להחזיר את כל התוצרים לתוך Database רלציוני, שהתשתית בו כבר בנויה לקליטה של עיבודים כאלה.
Hadoop Ecosystem
Hadoop מציע לנו קלסטר של מכונות שהוא גם סטורג’ מבוזר וגם עיבוד מבוזר. על כל Node בקלסטר יש לנו גם מידע, וגם יש לנו רכיב שיודע להריץ אפליקציה או את העיבוד באופן מבוזר – מדובר בתהליך מאוד יעיל.
זה מספק לנו מענה לנושא חשוב של גדילה – Linear Scalability – אם מוסיפים לקלסטר פי שתיים מכונות – יש לנו פי שתיים CPU, פי שתיים זכרון, פי שתיים סטורג’ ויכולת עיבוד פי שתיים.
אם Spark הוא מנוע חזק לעיבוד נתונים, אבל דורש יכולות של פיתוח בשפות Object Oriented שהזכרנו קודם: Java, Scala, Python, איך לבצע עיבודים פשוטים? ולמה צריך לדעת לתכנת בשפות עיליות, איך לתת לאנליסטים ואנשי BI יכולת עיבוד נתונים ב-Hadoop? כאן מענה ניתן באמצעות כלים HIVE/PIG – לצורך עיבודים אנליטיים פשוטים.
PIG שפותח ב-Yahoo, או HIVE שפותח ב-Facebook, מספקים שפה פשוטה ואינטואיטיבית יותר לכתוב שאילתה וזה ישר מתתרגם ל- Map/Reduce או ל-Spark. לצורך העניין HIVE היא שפה מקבילה ל-SQL, עושה Query, ו-PIG היא שפת Scripting. שתי השפות מספקות אבסטרקציה מעל Map/Reduce או Spark.
בעבודה עם שני הכלים האלה, האנליסטים או אנשי BI לא רק מתחקרים את Hadoop לטובת הניתוחים בהמשך, הם גם לוקחים חלק פעיל בבנייה של הסכמה והסביבה איתה יעבדו בהמשך.
ואיך עובדים עם Hadoop? כאן יש מוצר נוסף – HUE – Hadoop User Experience – מאפשר להתחבר למכונה כזו או אחרת, ולבצע את כל הפעולות הנדרשות.
היום אין כלי שלא יודע להתממשק עם Hadoop – כלי BI ו-ETL, כלים של עבודה רגילה מול Database ליצירת Database Link.
כלי נוסף ב-Ecosystem שעוזר בעבודה שוטפת מול Hadoop – הוא Sqoop – כלי שיודע לעשות אינטגרציה עם DB רלציוני, מאפשר לגזור מידע מ- Database רלציוני ל- Hadoop והפוך. ועוד פעולות.
ישנם המון כלים נוספים, כגון: Impala, Kudu, Oozie, ועוד.
איך הופכים למומחה Big Data או מומחה Hadoop?
תחום ביג דאטה זה תחום שגדל ומפתחת בקצב מדהים והדרישה לתפקידי ביג דאטה הולכים וגדלים. לכן יש יתרון עצום בהכשרה מקצועית פרקטית וממוקדת בטכנולוגיה מסוימת.
נאיה קולג’ מציעה קורסים מעשיים בנושא Hadoop, כמרכז הדרכה רשמי ובלעדי של המפיצה המובילה בעולם של הפלטפורמה – Cloudera.
הקורסים שלנו מועברים בפיקוח מלא של חברת Cloudera וכוללים הדרכה ע”י מרצים מוסמכים, חומרי לימוד רשמיים, סביבת לימוד של Cloudera, תעודות סיום של Cloudera.
במסגרת רשימת הקורסים מעמיקים שלנו אנחנו מציעים את הקורסים הבאים:
Cloudera Hadoop Administration Course – קורס המתמקד באדמיניסטרציה וניהול תשתיתי, מבחינת ביצועים, אבטחה, מהם הכלים שעובדים עם Hadoop, מהם השיקולים לניהול ועבודה מול Cloudera Manager, מה זה Hadoop Cluster ואיך מרימים אותו, ועוד.
Cloudera Hadoop Analytics Course – הקורס מספק ידע מעשי לצורך עבודה שוטפת מול HADOOP, מה המשתמש צריך לדעת כדי לעבוד עם Hadoop, מהם הכלים המרכזיים שבאמצעותם ניתן לתחקר את המידע.
Cloudera Hadoop and Apache Spark Course – איך לא רק להריץ שליפות אלא ממש לפתח באמצעות הקוד תהליכים שלמים לעיבוד המידע, לאינטגרציה של המידע, לניתוח בזמן אמת.
ניתן ללמוד כל קורס בנפרד כשיש צורך להתמקצע בנושא ספציפי או לעבור הכשרה מעשית וארוכת טווח ממוקדת Hadoop – Cloudera Hadoop Expert.
מסלול הכשרה ייחודי שמכיל גם מודול לימוד של Linux כמערכת הפעלה על גביה רץ Hadoop, וכמובן מודול פיתוח ב-Java&Scala כמודול הכנה לקראת למידה של Spark. הקורס מעניק תפיסה שלמה איך לעבוד מול הפלטפורמה הנפוצה ביותר בשוק הישראלי ועולמי.
מכללת הייטק – נאיה קולג’ מציעה את המענה המקצועי והמתקדם בתחום הביג דאטה – לפרטים נוספים על הקורסים שלנו – לחצו כאן ליצירת קשר !