בשביל מה Hadoop טוב? (השימושים הטובים ביותר, האלטרנטיבות והכלים)

בואו נסתכל על פרויקט Hadoop – מהו ומתי השימוש בו עשוי להתאים לפרויקט שלך. Hadoop נמצא בשימוש על ידי רשימת חברות מרשימה, כולל פייסבוק, לינקדאין, עליבאבא, eBay ואמזון.


בקיצור, Hadoop נהדרת לניתוח נתונים של MapReduce על כמויות אדירות של נתונים. מקרי השימוש הספציפיים שלו כוללים: חיפוש נתונים, ניתוח נתונים, דיווח נתונים, אינדקס בקנה מידה גדול של קבצים (למשל קבצי יומן או נתונים מסורקי רשת) ומשימות אחרות לעיבוד נתונים תוך שימוש במה שמכונה בעולם הפיתוח “Big Data” . “

במאמר זה נסקור: מתי להשתמש ב- Hadoop, מתי אין להשתמש ב- Hadoop, ביסודות Hadoop (HDFS, MapReduce ו- YARN), כלים הקשורים לחברת Hadoop, ואלטרנטיבות Hadoop..

לאחר שנעבור על כל הנושאים שלמעלה, אתה אמור לענות בביטחון על השאלה: האם יש לחאדוף מה להציע לעסק שלי??

מתי להשתמש ב- Hadoop

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

זכור שתשתית Hadoop ותכנות העבודה מבוסס MapReduce מבוסס Java דורשות מומחיות טכנית לצורך התקנה ותחזוקה נכונים. אם מיומנויות אלה יקרות מכדי להעסיק או לתת שירות לעצמך, כדאי לך לשקול אפשרויות עיבוד נתונים אחרות עבור ה- Big Data שלך. (דלג לחלופות להאדוף!)

1. לעיבוד נתונים גדולים באמת:

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

2. לאחסון מערך נתונים מגוון:

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

3. לעיבוד נתונים מקביל:

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

כל עיבוד נתונים מבוסס גרף (כלומר רשת מורכבת של נתונים תלוי בנתונים אחרים) אינו מתאים למתודולוגיה הסטנדרטית של Hadoop. עם זאת, המסגרת הקשורה ל- Apache Tez מאפשרת להשתמש בגישה מבוססת גרפים לעיבוד נתונים באמצעות YARN במקום זרימת העבודה MapReduce ליניארית יותר..

מתי לא להשתמש ב- Hadoop

עכשיו נעבור על כמה מקרים שבהם לא יהיה ראוי להשתמש בחדוף.

1. לניתוח נתונים בזמן אמת:

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

הערת אזהרה: פיתרון אפשרי לבעיה זו הוא אחסון הנתונים שלך ב- HDFS והשימוש במסגרת Spark. בעזרת Spark ניתן לעבד בזמן אמת באמצעות נתוני זיכרון. זה מאפשר קצב מהיר של 100X; עם זאת, האצת 10x אפשרית גם בעת שימוש בזיכרון הדיסק, בגלל גישת העבודה “MapReduce” המרובת שלבים..

2. עבור מערכת מסדי נתונים יחסית:

עקב זמני תגובה איטית, אין להשתמש בחדוד למאגר מידע יחסי.

הערת אזהרה: פיתרון אפשרי לבעיה זו הוא להשתמש במנוע Hive SQL, המספק סיכומי נתונים ותומך בשאילתות אד-הוק. Hive מספק מנגנון להקרין מבנה כלשהו על נתוני Hadoop ואז לבצע שאילתת נתונים באמצעות שפה דמוית SQL בשם HiveQL.

3. עבור מערכת קבצים כללית ברשת:

זמני התגובה האיטיים שוללים גם את Hadoop כמערכת קבצים כללית פוטנציאלית ברשת. ישנן גם בעיות אחרות של מערכות קבצים, מכיוון ש- HDFS חסרה רבות מתכונות מערכת הקבצים הסטנדרטיות של POSIX שהיישומים מצפים ממערכת קבצים כללית ברשת. על פי תיעוד Hadoop, “יישומי HDFS זקוקים למודל גישה של קריאה פעם אחת לקריאה לקבצים. אסור לשנות קובץ שיצר, נכתב וסגר פעם לאחר פרט לתוספות וקציצות. ” אתה יכול להוסיף תוכן לסוף הקבצים, אך אינך יכול לעדכן בנקודה “שרירותית”.

4. לעיבוד נתונים שאינו מקביל:

MapReduce הוא לא תמיד האלגוריתם הטוב ביותר לצורכי עיבוד הנתונים שלך. כל פעולה של MapReduce צריכה להיות עצמאית מכל האחרים. אם הפעולה דורשת לדעת מידע רב מעבודות שעובדו בעבר (מצב משותף), ייתכן שמודל התכנות MapReduce אינו האפשרות הטובה ביותר..

תרשים של זרימת העבודה של Hadoop MadReduce

Hadoop ומודל התכנות שלה MapReduce משמשים בצורה הטובה ביותר לעיבוד נתונים במקביל.

הערת אזהרה: לעיתים ניתן לסייע באופן חלקי בבעיות תלות במצב זה על ידי הפעלת עבודות מרובות של MapReduce, כאשר התפוקה של אחת מהן היא הקלט למשנהו. זה משהו שמסגרת Apache Tez עושה בגישה מבוססת גרפים לעיבוד נתונים של Hadoop. אפשרות נוספת שיש לקחת בחשבון היא שימוש ב- HBase לאחסון כל מצב משותף במערכת טבלה גדולה זו. עם זאת, פתרונות אלה מוסיפים מורכבות לזרימת העבודה של Hadoop.

מה זה Hadoop? – 3 רכיבי ליבה

Hadoop מורכבת משלושה רכיבי ליבה: מערכת קבצים מבוזרת, מסגרת תכנות מקבילה ומערכת ניהול משאבים / משרות. לינוקס וחלונות הן מערכות ההפעלה הנתמכות עבור Hadoop, אך ידוע ש- BSD, Mac OS / X ו- OpenSolaris עובדים גם כן..

1. מערכת קבצים מבוזרת Hadoop (HDFS)

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

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

2. Hadoop MapReduce

Hadoop מתמקדת באחסון והפצה של עיבוד נתונים גדולים על פני אשכולות מחשבים באמצעות מודל תכנות MapReduce: Hadoop MapReduce.

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

דיאגרמת MapReduce Hadoop

המערכת האקולוגית של Hadoop משתמשת במודל תכנות MapReduce לאחסון ועיבוד של מערכי נתונים גדולים.

להלן דוגמה של תוכנית WordCount MapReduce שנכתבה עבור Hadoop.

3. Hadoop YARN

המסגרת של Hadoop YARN מאפשרת לבצע תזמון משרות וניהול משאבי אשכול, כלומר המשתמשים יכולים להגיש ולהרוג יישומים דרך ממשק ה- API של Hadoop REST. ישנם גם ממשקי משתמש ברשת לניטור אשכול Hadoop שלך. בהאדאוף, השילוב של כל קבצי ה- Java JAR והשיעורים הדרושים להפעלת תוכנית MapReduce נקרא עבודה. אתה יכול להגיש עבודות ל- JobTracker משורת הפקודה או באמצעות HTTP לפרסם אותם לממשק ה- REST. עבודות אלה מכילות את “המשימות” המבצעות את המפה האישית ומקטינות את הצעדים. ישנן גם דרכים לשלב קוד שאינו ג’אווה בעת כתיבת משימות אלה. אם מסיבה כלשהי צומת אשכול של Hadoop יורד, עבודות העיבוד המושפעות מועברות אוטומטית לצמתי אשכול אחרים.

כלי Hadoop

להלן תמצא רשימה של פרויקטים הקשורים לחאוד בהנחיית קרן אפאצ’ה:

אמברי: כלי מבוסס אינטרנט להקצאה, ניהול ומעקב אחר אשכולות אפאצ’י Hadoop, אמברי כולל תמיכה ב- Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig ו- Sqoop. Ambari מספק גם לוח מחוונים לצפייה בגורמי בריאות באשכול, הכולל מפות חום ויכולת להציג יישומים של MapReduce, Pig ו- Hive באופן חזותי, וכן תכונות לאבחון מאפייני ביצועים בצורה ידידותית למשתמש..

אברו: Avro היא מערכת בהמשכים נתונים.

קסנדרה: קסנדרה הוא בסיס נתונים רב-מאסטר ניתן להרחבה ללא נקודות כשל יחידה.

צ’וקווה: מערכת איסוף נתונים, Chukwa משמשת לניהול מערכות מבוזרות גדולות.

HBase: מסד נתונים מפוזר וניתן להרחבה, HBase תומך באחסון נתונים מובנה לטבלאות גדולות.

כוורת: Hive היא תשתית מחסני נתונים המספקת סיכומי נתונים ושאילתות אד-הוק.

מהוט: Mahout היא ספריית למידה וכריית נתונים של מדרג.

חזיר: זוהי שפת זרימת נתונים ברמה גבוהה ומסגרת ביצוע לחישוב מקביל.

ניצוץ: מנוע מחשוב מהיר וכללי לנתוני Hadoop, Spark מספק מודל תכנות פשוט ואקספרסיבי התומך במגוון רחב של יישומים, כולל ETL, למידת מכונה, עיבוד זרמים ומחשוב גרפים..

טז: Tez היא מסגרת תכנות כללית של זרימת נתונים הבנויה על Hadoop YARN המספקת מנוע חזק וגמיש להפעלת DAG של משימות שרירותיות לעיבוד נתונים הן עבור מקרי אצווה והן עבור מקרי שימוש אינטראקטיביים. Tez מאומץ על ידי Hive, Pig ומסגרות אחרות במערכת האקולוגית Hadoop, וגם על ידי תוכנות מסחריות אחרות (למשל, כלי ETL), כדי להחליף את Hadoop MapReduce כמנוע הביצוע הבסיסי..

גן החיות: זהו שירות קואורדינציה בעל ביצועים גבוהים עבור יישומים מבוזרים.

אלטרנטיבות Hadoop

לקבלת החלופות הטובות ביותר ל- Hadoop, תוכלו לנסות אחת מהפעולות הבאות:

סערת אפאצ’י: זהו ההאדו”ף של עיבוד בזמן אמת שנכתב בשפת Clojure.

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

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

אפצ’י פלינק: Flink היא פלטפורמה לעיבוד נתוני זרם ונתונים מבוזרים שניתן להשתמש בהם עם Hadoop.

פאצ’יידרם: Pachyderm טוען לספק את הכוח של MapReduce ללא המורכבות של Hadoop באמצעות שימוש במכלי Docker ליישום האשכול..

הדרכת הדרו בסקירה

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

אם אתה רוצה ללמוד יותר על Hadoop, עיין בתיעוד שלה ובוויקי Hadoop.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me