מדריך HBase: מבוא HBase ומחקר פייסבוק



בלוג הדרכה זה של HBase מציג לך מהי HBase ותכונותיו. זה מכסה גם את מקרה המקרים של Messenger Messenger כדי להבין את היתרונות של HBase.

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

כפול ל- int בג'אווה

מדריך Apache HBase: היסטוריה

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





היסטוריה של HBase - הדרכת HBase - אדוריקה

  • אפאצ'י HBase מעוצב על פי BigTable של גוגל, המשמש לאיסוף נתונים ולהגשת בקשה לשירותי גוגל שונים כמו מפות, פיננסים, כדור הארץ וכו '.
  • אפאצ'י HBase התחיל כפרויקט של חברת Powerset לחיפוש שפה טבעית, שטיפל בערכות נתונים מסיביות ודלילות.
  • Apache HBase שוחרר לראשונה בפברואר 2007. מאוחר יותר בינואר 2008 הפכה HBase לפרויקט משנה של Apache Hadoop.
  • בשנת 2010 הפך HBase לפרויקט של הרמה העליונה של אפאצ'י.

מדריך HBase | מסדי נתונים NoSQL | אדוריקה



לאחר שתדע על ההיסטוריה של Apache HBase, היית סקרן לדעת מה זה Apache HBase? בואו נתקדם הלאה ונסתכל.

מדריך Apache HBase: מבוא ל- HBase

HBase הוא קוד פתוח, רב מימדי, מבוזר, ניתן להרחבה ו מסד נתונים NoSQL כתוב בג'אווה. HBase רץ על גבי HDFS (מערכת קבצים מבוזרת של Hadoop) ומספקת יכולות כמו BigTable ל- Hadoop. הוא נועד לספק דרך סובלנית לאחסון אוסף גדול של ערכות נתונים דלילות.

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



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

בואו נבין את זה דרך דוגמה: מנוע סילון מייצר סוגים שונים של נתונים מחיישנים שונים כמו חיישן לחץ, חיישן טמפרטורה, חיישן מהירות וכו 'המעיד על בריאות המנוע. זה מאוד שימושי כדי להבין את הבעיות ואת מצב הטיסה. פעולות מנוע רציפות מייצרות נתונים של 500 ג'יגה בייט לטיסה ויש כ -300 אלף טיסות ביום. לכן, מנוע אנליטיקס המופעל על נתונים כאלה בזמן אמת יכול לשמש לאבחון בעיות באופן יזום ולהפחתת זמן השבתה לא מתוכנן. זה דורש סביבה מבוזרת כדי לאחסן איתה כמות גדולה של נתונים מהיר אקראי קורא וכותב לעיבוד בזמן אמת. הנה, HBase מגיע להצלה. אדבר על HBase קרא וכתוב בפירוט בבלוג הבא שלי ב- ארכיטקטורת HBase .

כידוע, HBase הוא מסד נתונים NoSQL. לכן, לפני שנבין יותר על HBase, בואו נדון תחילה על מאגרי המידע NoSQL וסוגיהם.

מדריך Apache HBase: מאגרי NoSQL

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

חנויות ערך-ערך:

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

מאגרי מפתח של חנויות מפתח: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

מקרה שימוש

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

מכוון מסמך :

הוא עוקב אחר צמד ערכי מפתח זהה, אך הוא בנוי למחצה כמו XML, JSON, BSON. מבנים אלה נחשבים כמסמכים.

מאגרי מידע מבוססי מסמכים: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

מקרה שימוש

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

עמודה מכוונת:

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

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

מאגרי מידע מבוססי עמודות: HBase, Accumulo, Cassandra, Druid, Vertica.

מקרה שימוש

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

מונחה גרף:

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

מאגרי מידע מבוססי גרפים: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

ההבדל בין xml ל- html

מקרה שימוש

זה משמש בעצם בזיהוי הונאה, מנועי המלצות בזמן אמת (ברוב המקרים מסחר אלקטרוני), ניהול נתוני אב (MDM), פעולות רשת ו- IT, ניהול זהויות וגישה (IAM) וכו '.

HBase ו- Cassandra הם שני מאגרי המידע המפורסמים המכוונים לטורים. אז, עכשיו מדברים על זה ברמה גבוהה יותר, הבה נשווה ונבין את ההבדלים האדריכליים והעבודה בין HBase לקאסנדרה.

מדריך HBase: HBase VS קסנדרה

  • HBase מעוצב על פי BigTable (גוגל) ואילו קסנדרה מבוססת על DynamoDB (אמזון) שפותחה לראשונה על ידי פייסבוק.
  • HBase ממנף תשתית Hadoop (HDFS, ZooKeeper) בעוד שקסנדרה התפתחה בנפרד, אך ניתן לשלב את Hadoop ו- Cassandra בהתאם לצרכים שלך.
  • ל- HBase ישנם מספר רכיבים המתקשרים יחד כמו HBase HMaster, ZooKeeper, NameNode, Region Severs. בעוד שקסנדרה היא סוג צומת יחיד, בו כל הצמתים שווים ומבצעים את כל הפונקציות. כל צומת יכול להיות הרכז. זה מסיר נקודת כשל אחת.
  • HBase מותאם לקריאה ותומך בכתיבה בודדת, מה שמוביל לעקביות קפדנית. HBase תומך בסריקות מבוססות טווח, מה שהופך את תהליך הסריקה למהיר יותר. ואילו קסנדרה תומכת בקריאות בשורה אחת השומרת על עקביות בסופו של דבר.
  • קסנדרה אינה תומכת בסריקות שורות מבוססות טווח, מה שמאט את תהליך הסריקה בהשוואה ל- HBase.
  • HBase תומך בחלוקה מסודרת, בה שורות של משפחת עמודות מאוחסנות בסדר RowKey, ואילו בקזנדרה חלוקה מסודרת היא אתגר. עקב חלוקת RowKey תהליך הסריקה מהיר יותר ב- HBase בהשוואה לקאסנדרה.
  • HBase אינו תומך באיזון עומסי קריאה, שרת אזור אחד משרת את בקשת הקריאה והעתקים משמשים רק במקרה של כשל. בעוד שקסנדרה תומכת באיזון עומסי קריאה ויכולה לקרוא את אותם נתונים מצמתים שונים. זה יכול לפגוע בעקביות.
  • ב- CAP (עקביות, זמינות ומחיצות-סובלנות) משפט HBase שומר על עקביות וזמינות ואילו קסנדרה מתמקדת בזמינות ומחיצות-סובלנות.


עכשיו בואו נצלול עמוק ונבין את התכונות של Apache HBase שהופך אותו לפופולרי כל כך.

מדריך Apache HBase: תכונות של HBase

  • Atomic קרא וכתוב: ברמה שורה, HBase מספק קריאה וכתיבה אטומית. ניתן להסביר זאת כשבמהלך תהליך קריאה או כתיבה אחד, כל שאר התהליכים מנועים מביצוע פעולות קריאה או כתיבה כלשהן.
  • עקבי קורא וכותב: HBase מספק קריאות וכתיבות עקביות עקב התכונה הנ'ל.
  • מדרגיות לינארית ומודולרית: מאחר שמערכות נתונים מופצות על פני HDFS, כך היא ניתנת להרחבה באופן ליניארי על פני צמתים שונים, כמו גם ניתן להרחבה מודולרית, מכיוון שהיא מחולקת על פני צמתים שונים.
  • רסיסת שולחנות אוטומטית וניתנת להגדרה: טבלאות HBase מופצות על פני אשכולות ואשכולות אלה מופצים על פני אזורים. אזורים ואשכולות אלה מתפצלים, ומופצים מחדש ככל שהנתונים גדלים.
  • קל לשימוש ב- Java API לגישה ללקוח: הוא מספק Java API קל לשימוש לגישה פרוגרמטית.
  • שער חסכן ושירותי אינטרנט REST מלאים: הוא תומך גם ב- Thrift ו- REST API עבור ממשקי קצה שאינם של Java.
  • חסום מסנני מטמון ובלום: HBase תומך במסנני Block Cache ו- Bloom לצורך אופטימיזציה של שאילתות בנפח גבוה.
  • תמיכה אוטומטית בכשלים: HBase עם HDFS מספק WAL (כתיבת יומן קדימה) על פני אשכולות המספקת תמיכה אוטומטית בכשלים.
  • מפתחות שורות ממוינים: מכיוון שהחיפוש נעשה בטווח שורות, HBase מאחסן מפתחות שורה לפי סדר לקסיקוגרפי. באמצעות מפתחות שורות ומיין הזמן האלו אנו יכולים לבנות בקשה ממוטבת.

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

ברצוני להפנות את תשומת לבך לתרחישים שבהם ה- HBase מתאים ביותר.

מדריך HBase: היכן נוכל להשתמש ב- HBase?

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

לפני שאני קופץ למחקר שליחים בפייסבוק,תן לי לספר לך מה ההבדלים בין HBase ל- HDFS.

מדריך HBase: HBase VS HDFS

HDFS היא מערכת קבצים מבוזרת מבוססת Java המאפשרת לך לאחסן נתונים גדולים על פני מספר צמתים באשכול Hadoop. לכן, HDFS היא מערכת אחסון בסיסית לאחסון הנתונים בסביבה המבוזרת. HDFS היא מערכת קבצים, ואילו HBase הוא בסיס נתונים (דומה ל- NTFS ו- MySQL).

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

  • HBase מספק גישה עם זמן אחזור לכמויות קטנות של נתונים בתוך ערכות נתונים גדולות ואילו HDFS מספק פעולות זמן אחזור.
  • HBase תומך בקריאה אקראית וכותב בעוד HDFS תומך ב- WORM (כתוב פעם אחת קרא פעמים רבות או מרובות).
  • ניתן לגשת ל- HDFS באופן בסיסי או בעיקר באמצעות עבודות MapReduce ואילו לגישה ל- HBase באמצעות פקודות מעטפת, Java API, REST, Avro או Thrift API.

HDFS מאחסן ערכות נתונים גדולות בסביבה מבוזרת ומנצל את עיבוד האצווה על הנתונים הללו. לְמָשָׁל. זה יעזור לאתר מסחר אלקטרוני לאחסן מיליוני נתוני לקוחות בסביבה מבוזרת שגדלה לאורך תקופה ארוכה (עשויה להיות 4-5 שנים ומעלה). ואז הוא ממנף את עיבוד האצווה על פני נתונים אלה ומנתח התנהגויות לקוחות, דפוס, דרישות. אז החברה תוכל לגלות איזה סוג מוצר, רכישת לקוח באילו חודשים. זה עוזר לאחסן נתונים בארכיון ולבצע עליהם עיבוד אצווה.

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

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

מדריך HBase: מחקר מקרה של Messenger Messenger

פלטפורמת המסרים בפייסבוק עבר מאפאצ'י קסנדרה ל- HBase בנובמבר 2010.

Messenger Messenger משלב הודעות, דוא'ל, צ'אט ו- SMS לשיחה בזמן אמת. פייסבוק ניסתה לבנות תשתית ניתנת להרחבה וחזקה שתטפל במערך של שירותים אלה.

באותה תקופה תשתית ההודעות טיפלה בלמעלה מ -350 מיליון משתמשים בשליחת מעל 15 מיליארד הודעות בין אדם לאדם בחודש. שירות הצ'אט תומך בלמעלה מ -300 מיליון משתמשים השולחים מעל 120 מיליארד הודעות בחודש.

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

  • קבוצה קצרה של נתונים זמניים הנוטה להיות תנודתי
  • מערכת נתונים הולכת וגדלה שלעתים נדירות נגישה אליה

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

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

הם השקיעו כמה שבועות בבדיקת מסגרות שונות כדי להעריך את האשכולות של MySQL, Apache Cassandra, Apache HBase ומערכות אחרות. בסופו של דבר הם בחרו ב- HBase.

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

הבעיות העיקריות היו:

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

פיבונאצי ב- c ++

איור: אתגרים העומדים בפני שליח פייסבוק

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

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

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

איור: HBase כפתרון למסנג'ר של פייסבוק

כאשר אימצו את HBase, הם התמקדו גם בהחזרת התוצאות ל- HBase עצמה והחלו לעבוד בצמוד לקהילת אפאצ'י.

מכיוון שההודעות מקבלות נתונים ממקורות שונים כגון SMS, צ'אטים ומיילים, הם כתבו שרת יישומים לטיפול בכל קבלת ההחלטות לגבי הודעת המשתמש. הוא מתממשק עם מספר רב של שירותים אחרים. הקבצים המצורפים מאוחסנים בערמת הייב (שעובדת ב- HBase). הם גם כתבו שירות גילוי משתמשים על גבי Apache ZooKeeper, המדבר עם שירותי תשתית אחרים לצורך קשרי חברים, אימות חשבון דוא'ל, החלטות מסירה והחלטות פרטיות.

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

אני מקווה שבלוג ההדרכה של HBase אינפורמטיבי ואהבתם אותו. בבלוג זה הכרת את היסודות של HBase ותכונותיו.בבלוג הבא שלי של אני אסביר את ארכיטקטורה של HBase ועבודה של HBase שהופכת אותו לפופולרי לקריאה / כתיבה מהירה ואקראית.

כעת לאחר שהבנתם את היסודות של HBase, בדקו את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס הכשרת ההסמכה של אדוריקה ביג דאטה Hadoop עוזר ללומדים להיות מומחים בתחום HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume ו- Sqoop תוך שימוש במקרי שימוש בזמן אמת בתחום הקמעונאות, מדיה חברתית, תעופה, תיירות, פיננסים.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות ונחזור אליך.