دروس HBase: مقدمة HBase ودراسة حالة Facebook



تقدم لك مدونة HBase التعليمية هذه ما هو HBase وميزاته. كما يغطي دراسة حالة Facebook Messenger لفهم فوائد HBase.

كما ذكرنا في موقعنا مدونة ، HBase هو جزء أساسي من نظام Hadoop البيئي الخاص بنا. لذا الآن ، أود أن آخذك عبر برنامج HBase التعليمي ، حيث سأقدم لك Apache HBase ، وبعد ذلك ، سنستعرض دراسة حالة Facebook Messenger. سنقوم بتغطية الموضوعات التالية في مدونة HBase التعليمية هذه:

دروس اباتشي HBase: التاريخ

دعونا نبدأ بتاريخ HBase ونعرف كيف تطورت HBase على مدار فترة زمنية.





تاريخ HBase - دروس HBase - Edureka

  • تم تصميم Apache HBase على غرار BigTable من Google ، والذي يُستخدم لجمع البيانات وتقديم الطلبات لخدمات Google المتنوعة مثل الخرائط والمالية و Earth وما إلى ذلك.
  • بدأ Apache HBase كمشروع من قبل شركة Powerset for Natural Language Search ، التي كانت تتعامل مع مجموعات بيانات ضخمة ومتفرقة.
  • تم إصدار Apache HBase لأول مرة في فبراير 2007. لاحقًا في يناير 2008 ، أصبح HBase مشروعًا فرعيًا لشركة Apache Hadoop.
  • في عام 2010 ، أصبح HBase مشروع المستوى الأعلى من Apache.

دروس HBase | قواعد بيانات NoSQL | إدوريكا



بعد معرفة تاريخ Apache HBase ، ستشعر بالفضول لمعرفة ما هو Apache HBase؟ دعونا نتحرك أبعد من ذلك ونلقي نظرة.

برنامج Apache HBase التعليمي: مقدمة إلى HBase

HBase هو مصدر مفتوح ومتعدد الأبعاد وموزع وقابل للتطوير وأ قاعدة بيانات NoSQL مكتوب بلغة جافا. يعمل HBase فوق HDFS (نظام الملفات الموزعة Hadoop) ويوفر قدرات BigTable مثل Hadoop. إنه مصمم لتوفير طريقة تحمل الأخطاء لتخزين مجموعة كبيرة من مجموعات البيانات المتفرقة.

منذ ذلك الحين ، تحقق HBase إنتاجية عالية وزمن انتقال منخفض من خلال توفير وصول أسرع للقراءة / الكتابة على مجموعات البيانات الضخمة. لذلك ، فإن HBase هو خيار التطبيقات التي تتطلب وصولاً سريعًا وعشوائيًا إلى كمية كبيرة من البيانات.



يوفر ضغطًا وعمليات في الذاكرة ومرشحات Bloom (بنية البيانات التي تحدد ما إذا كانت القيمة موجودة في مجموعة أم لا) لتلبية متطلبات القراءة السريعة والعشوائية.

دعونا نفهمها من خلال مثال: يولد المحرك النفاث أنواعًا مختلفة من البيانات من مستشعرات مختلفة مثل مستشعر الضغط ومستشعر درجة الحرارة ومستشعر السرعة وما إلى ذلك مما يشير إلى صحة المحرك. هذا مفيد جدًا لفهم مشاكل الرحلة وحالتها. تنتج عمليات المحرك المستمرة 500 جيجابايت من البيانات لكل رحلة وهناك 300 ألف رحلة يوميًا تقريبًا. لذلك ، يمكن استخدام تحليلات المحرك المطبقة على مثل هذه البيانات في الوقت الفعلي تقريبًا لتشخيص المشكلات بشكل استباقي وتقليل وقت التوقف غير المخطط له. يتطلب هذا بيئة موزعة لتخزين كمية كبيرة من البيانات بها قراءة وكتابة عشوائية سريعة للمعالجة في الوقت الحقيقي. هنا ، يأتي HBase للإنقاذ. سأتحدث عن HBase اقرأ واكتب بالتفصيل في مدونتي التالية على هندسة HBase .

كما نعلم ، HBase هي قاعدة بيانات NoSQL. لذا ، قبل فهم المزيد عن HBase ، دعنا نناقش أولاً حول قواعد بيانات NoSQL وأنواعها.

برنامج Apache HBase التعليمي: قواعد بيانات NoSQL

NoSQL تعني ليس فقط SQL . تم تصميم قواعد بيانات NoSQL بطريقة تمكنها من تمثيل البيانات بخلاف التنسيقات المجدولة وقواعد البيانات العلائقية غير المقيدة. يستخدم تنسيقات مختلفة لتمثيل البيانات في قواعد البيانات ، وبالتالي ، هناك أنواع مختلفة من قواعد بيانات NoSQL بناءً على تنسيق التمثيل الخاص بها. تستفيد معظم قواعد بيانات NoSQL من التوافر والسرعة على التناسق. الآن ، دعونا نمضي قدمًا ونفهم الأنواع المختلفة لقواعد بيانات NoSQL وتنسيقات تمثيلها.

متاجر القيمة الرئيسية:

إنها قاعدة بيانات بدون مخطط تحتوي على مفاتيح وقيم. يشير كل مفتاح إلى قيمة عبارة عن مصفوفة من البايتات ، ويمكن أن تكون سلسلة ، أو BLOB ، أو XML ، إلخ. Lamborghini هو مفتاح ويمكن أن يشير إلى قيمة Gallardo و Aventador و Murciélago و Reventón و Diablo و Huracán و Veneno و Centenario وما إلى ذلك.

قواعد بيانات مخازن Key-Value: 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.

حالة الاستخدام

نظرًا لأن المستند يدعم المخطط المرن ، فإن القراءة السريعة للكتابة والتقسيم تجعله مناسبًا لإنشاء قواعد بيانات مستخدم في خدمات مختلفة مثل Twitter ومواقع التجارة الإلكترونية وما إلى ذلك.

العمود الموجه:

في قاعدة البيانات هذه ، يتم تخزين البيانات في خلايا مجمعة في عمود بدلاً من صفوف. يتم تجميع الأعمدة بشكل منطقي في مجموعات الأعمدة التي يمكن إنشاؤها أثناء تعريف المخطط أو في وقت التشغيل.

تخزن هذه الأنواع من قواعد البيانات كل الخلايا المقابلة للعمود كإدخال مستمر للقرص ، مما يجعل الوصول والبحث أسرع بكثير.

كيفية عمل مضاعفة كثافة العمليات في جافا

قواعد البيانات القائمة على العمود: HBase و Accumulo و Cassandra و Druid و Vertica.

حالة الاستخدام

وهو يدعم مساحة التخزين الضخمة ويسمح بوصول أسرع للقراءة والكتابة فوقه. هذا يجعل قواعد البيانات الموجهة نحو الأعمدة مناسبة لتخزين سلوكيات العملاء في موقع التجارة الإلكترونية والأنظمة المالية مثل Google Finance وبيانات سوق الأوراق المالية وخرائط Google وما إلى ذلك.

المنحى الرسم البياني:

إنه تمثيل رسومي مرن مثالي ، يستخدم على عكس SQL. تعمل هذه الأنواع من قواعد البيانات على حل مشكلات قابلية التوسع بسهولة لأنها تحتوي على حواف وعقدة يمكن تمديدها وفقًا للمتطلبات.

قواعد البيانات القائمة على الرسم البياني: AllegroGraph و ArangoDB و InfiniteGraph و Apache Giraph و MarkLogic و Neo4J و OrientDB و Virtuoso و Stardog.

حالة الاستخدام

يستخدم هذا بشكل أساسي في اكتشاف الاحتيال ومحركات التوصية في الوقت الفعلي (في معظم الحالات التجارة الإلكترونية) وإدارة البيانات الرئيسية (MDM) وعمليات الشبكة وتكنولوجيا المعلومات وإدارة الهوية والوصول (IAM) ، إلخ.

HBase و Cassandra هما قاعدتا البيانات المشهورتان الموجهة نحو العمود. لذا ، نتحدث الآن إلى مستوى أعلى ، دعونا نقارن ونفهم الاختلافات المعمارية والعملية بين HBase و Cassandra.

دروس HBase: HBase VS Cassandra

  • تم تصميم HBase على نموذج BigTable (Google) بينما يعتمد Cassandra على DynamoDB (Amazon) الذي تم تطويره في البداية بواسطة Facebook.
  • تستفيد HBase من البنية التحتية Hadoop (HDFS ، ZooKeeper) بينما تطورت Cassandra بشكل منفصل ولكن يمكنك الجمع بين Hadoop و Cassandra حسب احتياجاتك.
  • يحتوي HBase على العديد من المكونات التي تتواصل معًا مثل HBase HMaster و ZooKeeper و NameNode و Region Severs. بينما Cassandra هو نوع عقدة واحدة ، حيث تتساوى جميع العقد وتؤدي جميع الوظائف. يمكن لأي عقدة أن تكون المنسق وهذا يزيل نقطة واحدة من الفشل.
  • تم تحسين HBase للقراءة ودعم عمليات الكتابة الفردية ، مما يؤدي إلى الاتساق الصارم. يدعم HBase عمليات المسح القائمة على النطاق ، مما يجعل عملية المسح أسرع. بينما تدعم Cassandra قراءة الصف الفردي والتي تحافظ على الاتساق النهائي.
  • لا تدعم Cassandra عمليات مسح الصفوف القائمة على النطاق ، مما يؤدي إلى إبطاء عملية المسح مقارنةً بـ HBase.
  • يدعم HBase التقسيم المرتب ، حيث يتم تخزين صفوف عائلة العمود بترتيب RowKey ، بينما يعد التقسيم في Casandra تحديًا. نظرًا لتقسيم RowKey ، تكون عملية المسح أسرع في HBase مقارنةً بكاساندرا.
  • لا يدعم HBase موازنة تحميل القراءة ، يخدم خادم منطقة واحد طلب القراءة ويتم استخدام النسخ المتماثلة فقط في حالة الفشل. بينما يدعم Cassandra قراءة موازنة التحميل ويمكنه قراءة نفس البيانات من العقد المختلفة. هذا يمكن أن يضر الاتساق.
  • في نظرية CAP (الاتساق والتوافر والتقسيم - التسامح) تحافظ HBase على الاتساق والتوافر بينما تركز Cassandra على التوفر والتقسيم - التسامح.


دعنا الآن نلقي نظرة عميقة ونفهم ميزات Apache HBase التي تجعلها شائعة جدًا.

برنامج Apache HBase التعليمي: ميزات HBase

  • ذرية قراءة وكتابة: على مستوى الصف ، يوفر HBase القراءة والكتابة الذرية. يمكن تفسير ذلك ، أثناء عملية قراءة أو كتابة واحدة ، يتم منع جميع العمليات الأخرى من إجراء أي عمليات قراءة أو كتابة.
  • يقرأ ويكتب متسقة: يوفر HBase قراءات وكتابة متسقة بسبب الميزة المذكورة أعلاه.
  • قابلية التوسع الخطي والنمطي: نظرًا لتوزيع مجموعات البيانات على HDFS ، فهي قابلة للتطوير خطيًا عبر العقد المختلفة ، فضلاً عن كونها قابلة للتطوير المعياري ، حيث يتم تقسيمها عبر عقد مختلفة.
  • تجزئة الجداول التلقائية والقابلة للتكوين: يتم توزيع جداول HBase عبر الكتل ويتم توزيع هذه المجموعات عبر المناطق. تنقسم هذه المناطق والمجموعات ، ويتم إعادة توزيعها مع نمو البيانات.
  • واجهة برمجة تطبيقات Java سهلة الاستخدام لوصول العميل: يوفر واجهة برمجة تطبيقات Java سهلة الاستخدام للوصول الآلي.
  • بوابة التوفير وخدمات الويب REST-ful: كما أنها تدعم واجهة برمجة تطبيقات Thrift و REST للواجهات الأمامية بخلاف Java.
  • Block Cache و Bloom Filters: HBase يدعم Block Cache و Bloom Filters لتحسين الاستعلام بكميات كبيرة.
  • دعم الفشل التلقائي: يوفر HBase مع HDFS WAL (كتابة السجل إلى الأمام) عبر المجموعات التي توفر دعمًا تلقائيًا للفشل.
  • مفاتيح الصفوف التي تم فرزها: أثناء إجراء البحث في مجموعة من الصفوف ، يخزن HBase مفاتيح الصف بترتيب معجمي. باستخدام مفاتيح الصفوف والطوابع الزمنية التي تم فرزها ، يمكننا إنشاء طلب محسن.

الآن المضي قدمًا في هذا البرنامج التعليمي HBase ، دعني أخبرك ما هي حالات الاستخدام والسيناريوهات حيث يمكن استخدام HBase وبعد ذلك ، سأقارن HDFS و HBase.

أود أن ألفت انتباهكم إلى السيناريوهات التي يكون فيها HBase هو الأنسب.

دروس HBase: أين يمكننا استخدام HBase؟

  • يجب أن نستخدم HBase حيث لدينا مجموعات كبيرة من البيانات (الملايين أو المليارات أو الصفوف والأعمدة) ونحتاج إلى وصول سريع وعشوائي وفي الوقت الحقيقي للقراءة والكتابة على البيانات.
  • يتم توزيع مجموعات البيانات عبر مجموعات مختلفة ونحتاج إلى قابلية عالية للتوسع للتعامل مع البيانات.
  • يتم جمع البيانات من مصادر بيانات مختلفة وهي إما بيانات شبه منظمة أو غير منظمة أو مزيج من الكل. يمكن التعامل معها بسهولة مع HBase.
  • تريد تخزين البيانات الموجهة نحو العمود.
  • لديك الكثير من الإصدارات من مجموعات البيانات وتحتاج إلى تخزينها جميعًا.

قبل الانتقال إلى دراسة حالة Facebook Messenger ،دعني أخبرك ما هي الاختلافات بين 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 من خلال أوامر shell أو Java API أو REST أو Avro أو Thrift API.

يخزن HDFS مجموعات البيانات الكبيرة في بيئة موزعة ويعزز معالجة الدُفعات على تلك البيانات. على سبيل المثال سيساعد موقع التجارة الإلكترونية على تخزين ملايين بيانات العملاء في بيئة موزعة نمت على مدى فترة زمنية طويلة (قد تكون 4-5 سنوات أو أكثر). بعد ذلك ، تستفيد من معالجة الدُفعات على تلك البيانات وتحليل سلوكيات العملاء ونمطهم ومتطلباتهم. ثم يمكن للشركة معرفة نوع المنتج ، شراء العميل في أي الأشهر. يساعد على تخزين البيانات المؤرشفة وتنفيذ معالجة الدُفعات عليها.

بينما يقوم HBase بتخزين البيانات بطريقة موجهة نحو الأعمدة حيث يتم تخزين كل عمود معًا بحيث تصبح القراءة أسرع للاستفادة من المعالجة في الوقت الفعلي. على سبيل المثال في بيئة تجارة إلكترونية مماثلة ، يخزن ملايين بيانات المنتج. لذلك إذا كنت تبحث عن منتج من بين ملايين المنتجات ، فإنه يحسن الطلب وعملية البحث ، وينتج النتيجة على الفور (أو يمكنك القول في الوقت الفعلي). المفصل شرح معماري HBase ، سأغطي في مدونتي التالية.

كما نعلم ، يتم توزيع HBase عبر HDFS ، لذا فإن الجمع بين الاثنين يمنحنا فرصة رائعة لاستخدام فوائد كليهما ، في حل مخصص ، كما سنرى في دراسة حالة Facebook messenger أدناه.

دروس HBase: دراسة حالة Facebook Messenger

منصة Facebook Messaging انتقلت من Apache Cassandra إلى HBase في نوفمبر 2010.

يجمع Facebook Messenger بين الرسائل والبريد الإلكتروني والدردشة والرسائل القصيرة في محادثة في الوقت الفعلي. كان Facebook يحاول إنشاء بنية تحتية قابلة للتطوير وقوية للتعامل مع مجموعة من هذه الخدمات.

في ذلك الوقت ، عالجت البنية التحتية للرسائل أكثر من 350 مليون مستخدم أرسلوا أكثر من 15 مليار رسالة من شخص إلى شخص شهريًا. تدعم خدمة الدردشة أكثر من 300 مليون مستخدم يرسلون أكثر من 120 مليار رسالة شهريًا.

من خلال مراقبة الاستخدام ، اكتشفوا أن هناك نمطين عامين للبيانات:

هي درجة الماجستير بعد التخرج
  • مجموعة قصيرة من البيانات الزمنية تميل إلى التقلب
  • مجموعة متزايدة من البيانات نادرًا ما يتم الوصول إليها

أراد Facebook العثور على حل تخزين لنمطي الاستخدام هذين وبدأوا في البحث للعثور على بديل للبنية التحتية الحالية للرسائل.

في وقت سابق من عام 2008 ، استخدموا قاعدة بيانات مفتوحة المصدر ، مثل Cassandra ، وهي عبارة عن متجر ذي قيمة رئيسية ذات تناسق نهائي كان بالفعل قيد الإنتاج ويخدم حركة مرور Inbox Search. كان لدى فرقهم معرفة كبيرة في استخدام وإدارة قاعدة بيانات MySQL ، لذلك كان تبديل أي من التقنيات مصدر قلق كبير بالنسبة لهم.

لقد أمضوا بضعة أسابيع في اختبار أطر عمل مختلفة ، لتقييم مجموعات MySQL و Apache Cassandra و Apache HBase وأنظمة أخرى. في النهاية اختاروا HBase.

نظرًا لأن MySQL فشلت في التعامل مع مجموعات البيانات الكبيرة بكفاءة ، حيث نمت الفهارس ومجموعات البيانات بشكل كبير ، عانى الأداء. وجدوا أن Cassandra غير قادرة على التعامل مع النمط الصعب للتوفيق بين البنية التحتية الجديدة للرسائل.

كانت المشاكل الرئيسية:

  • تخزين مجموعات كبيرة من البيانات المتزايدة باستمرار من خدمات Facebook المختلفة.
  • يتطلب قاعدة بيانات يمكنها الاستفادة من المعالجة العالية عليها.
  • مطلوب أداء عالي لخدمة ملايين الطلبات.
  • الحفاظ على التناسق في التخزين والأداء.

الشكل: التحديات التي يواجهها Facebook messenger

لكل هذه المشاكل ، توصل Facebook إلى حل مثل HBase. اعتمد Facebook HBase لخدمة Facebook messenger والدردشة والبريد الإلكتروني وما إلى ذلك نظرًا لميزاته المختلفة.

يأتي HBase مع قابلية تطوير جيدة جدًا وأداء لأعباء العمل هذه بنموذج تناسق أبسط من Cassandra. بينما وجدوا أن HBase هو الأنسب من حيث متطلباتهم مثل موازنة التحميل التلقائي وتجاوز الفشل ، ودعم الضغط ، وشظايا متعددة لكل خادم ، إلخ.

يوفر HDFS ، وهو نظام الملفات الأساسي الذي يستخدمه HBase ، أيضًا العديد من الميزات المطلوبة مثل المجموع الاختباري الشامل والنسخ وإعادة التوازن التلقائي للحمل.

الشكل: HBase كحل لبرنامج Facebook messenger

عندما اعتمدوا HBase ، ركزوا أيضًا على إعادة النتائج إلى HBase نفسها وبدأوا العمل بشكل وثيق مع مجتمع Apache.

نظرًا لأن الرسائل تقبل البيانات من مصادر مختلفة مثل الرسائل القصيرة والدردشات ورسائل البريد الإلكتروني ، فقد كتبوا خادم تطبيق للتعامل مع جميع عمليات صنع القرار لرسالة المستخدم. يتداخل مع عدد كبير من الخدمات الأخرى. يتم تخزين المرفقات في كومة قش (والتي تعمل على HBase). لقد كتبوا أيضًا خدمة اكتشاف المستخدم أعلى Apache ZooKeeper والتي تتحدث إلى خدمات البنية التحتية الأخرى للعلاقات مع الأصدقاء والتحقق من حساب البريد الإلكتروني وقرارات التسليم وقرارات الخصوصية.

قضى فريق Facebook الكثير من الوقت في التأكيد على أن كل خدمة من هذه الخدمات قوية وموثوقة وتوفر أداءً جيدًا للتعامل مع نظام المراسلة في الوقت الفعلي.

آمل أن تكون مدونة HBase التعليمية مفيدة وقد أحببتها. في هذه المدونة ، تعرفت على أساسيات HBase ومميزاته.في مدونتي القادمة من ، سوف أشرح هندسة HBase وعمل HBase مما يجعله شائعًا للقراءة / الكتابة السريعة والعشوائية.

الآن بعد أن فهمت أساسيات HBase ، تحقق من ملف من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تساعد الدورة التدريبية لشهادة Edureka Big Data Hadoop المتعلمين على أن يصبحوا خبراء في مجال HDFS ، و Yarn ، و MapReduce ، و Pig ، و Hive ، و HBase ، و Oozie ، و Flume ، و Sqoop باستخدام حالات الاستخدام في الوقت الفعلي في مجال البيع بالتجزئة ، والوسائط الاجتماعية ، والطيران ، والسياحة ، والمالية

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك.