HBase Archiالمادة: حالات الاستخدام والمكونات ونموذج البيانات

⚡ ملخص ذكي

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

  • 🧭 HMaster: يقوم بتعيين المناطق لخوادم المناطق، ويتعامل مع موازنة الأحمال والتحويل التلقائي في حالة الفشل، ويدير تغييرات المخطط والبيانات الوصفية.
  • 🗄️ خوادم المناطق: تلبية طلبات القراءة والكتابة من قبل العميل، واستضافة المناطق، وتقسيم المناطق تلقائيًا مع نمو البيانات.
  • 🧱 المناطق والمتاجر: تحتفظ كل منطقة بمتجر واحد لكل عائلة أعمدة، يتم إنشاؤه من MemStore في الذاكرة و HFiles على القرص.
  • 🔗 حارس حديقة الحيوان: ينسق المجموعة، tracأعطال خادم ks، ويحتفظ بتكوين النصاب الذي يستخدمه العملاء للاتصال.
  • 🧮 نموذج البيانات: تقوم الجداول بتجميع عائلات الأعمدة والصفوف، ويعمل مفتاح الصف كمفتاح أساسي لكل عملية وصول.
  • ⚡ مقارنة بين HBase و HDFS: يضيف HBase عمليات قراءة وكتابة عشوائية منخفضة زمن الوصول فوق تخزين الدفعات في نظام ملفات HDFS.

بنية HBase بمكوناتها، ونموذج البيانات، وتدفق البيانات للقراءة والكتابة

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

HBase Archiالبنية ومكوناتها المهمة

تتكون بنية HBase من المكونات الرئيسية التالية:

  • HMaster
  • HRegionServer
  • المناطق
  • حارس حديقة الحيوان
  • HDFS

فيما يلي بنية مفصلة لـ HBase مع مكوناتها، كما هو موضح في الرسم التخطيطي.

مخطط بنية HBase يوضح HMaster وخوادم المناطق وZooKeeper وHDFS

HMaster

يُعدّ HMaster في HBase تطبيقًا لخادم رئيسي ضمن بنية HBase. يعمل كعامل مراقبة لرصد جميع مثيلات خادم المنطقة الموجودة في المجموعة، كما يعمل كواجهة لجميع تغييرات البيانات الوصفية. في بيئة مجموعة موزعة، يعمل الخادم الرئيسي على NameNode، ويُشغّل عدة عمليات في الخلفية.

فيما يلي الأدوار المهمة التي يؤديها HMaster في HBase:

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

بعض الطرق التي توفرها واجهة HMaster هي في الأساس طرق موجهة نحو البيانات الوصفية:

  • الجدول (إنشاء الجدول، إزالة الجدول، تمكين، تعطيل)
  • ColumnFamily (إضافة عمود، تعديل العمود)
  • المنطقة (نقل، تعيين)

يتواصل العميل بشكل ثنائي الاتجاه مع كل من HMaster وZooKeeper. ولعمليات القراءة والكتابة، يتصل مباشرةً بخوادم HRegion. يقوم HMaster بتخصيص المناطق لخوادم المناطق، ويتحقق بدوره من حالة سلامة هذه الخوادم.

في البنية الكاملة، لدينا خوادم إقليمية متعددة. يوجد سجل HLog في الخوادم الإقليمية، والذي يخزن جميع ملفات السجل.

خوادم منطقة HBase

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

يُعدّ HRegionServer تطبيق خادم المناطق. وهو مسؤول عن خدمة وإدارة المناطق، أو البيانات الموجودة في مجموعة موزعة. تعمل خوادم المناطق على عُقد البيانات الموجودة في مجموعة Hadoop.

يستطيع برنامج HMaster الاتصال بالعديد من خوادم HRegion ويؤدي الوظائف التالية:

  • استضافة وإدارة المناطق
  • تقسيم المناطق تلقائيا
  • معالجة طلبات القراءة والكتابة
  • التواصل مع العميل مباشرة

مناطق HBase

تُعدّ مناطق H (HRegions) العناصر الأساسية لبناء مجموعة HBase. وهي تتألف من توزيع الجداول، وتتكون بدورها من عائلات الأعمدة. تحتوي المنطقة على عدة مخازن، مخزن لكل عائلة أعمدة. وتتكون بشكل رئيسي من عنصرين: مخزن الذاكرة (MemStore) وملف H (HFile).

حارس حديقة الحيوان

HBase حارس حديقة الحيوان هو خادم مراقبة مركزي يحتفظ بمعلومات التكوين ويوفر مزامنة موزعة. تعمل المزامنة الموزعة على تنسيق التطبيقات الموزعة التي تعمل عبر المجموعة، مما يوفر خدمات التنسيق بين العقد. إذا أراد العميل التواصل مع المناطق، فعليه أولاً الاتصال بـ ZooKeeper.

إنه مشروع مفتوح المصدر، ويقدم العديد من الخدمات المهمة.

الخدمات التي يقدمها ZooKeeper:

  • يحتفظ بمعلومات التكوين
  • يوفر المزامنة الموزعة
  • يُنشئ اتصال العميل مع خوادم المنطقة
  • يوفر عقدًا مؤقتة تمثل خوادم مناطق مختلفة.
  • يسمح هذا للخادم الرئيسي باستخدام هذه العقد المؤقتة لاكتشاف الخوادم المتاحة في المجموعة.
  • Tracفشل خادم ks وانقطاعات الشبكة

تقوم عقدة الخادم الرئيسي وعقدة خادم HBase التابعة (خوادم المنطقة) بتسجيل نفسها لدى ZooKeeper. يحتاج العميل إلى الوصول إلى إعدادات النصاب القانوني لـ ZooKeeper (ZK) للاتصال بالخادم الرئيسي وخوادم المنطقة.

أثناء تعطل العقد الموجودة في مجموعة HBase، يقوم نصاب ZooKeeper بتشغيل رسائل الخطأ ويبدأ في إصلاح العقد المعطلة.

HDFS

HDFS هو نظام Hadoop الموزع نظام الملفاتكما يوحي الاسم، يوفر هذا النظام بيئة تخزين موزعة، وهو نظام ملفات مصمم للعمل على أجهزة قياسية. يخزن كل ملف في عدة كتل، وللحفاظ على تحمل الأعطال، تُنسخ هذه الكتل عبر مجموعة Hadoop.

يوفر نظام ملفات Hadoop الموزع (HDFS) درجة عالية من تحمل الأعطال ويعمل على أجهزة رخيصة الثمن. من خلال إضافة عُقد إلى المجموعة وإجراء عمليات المعالجة والتخزين باستخدام هذه الأجهزة، يحصل العميل على نتائج أفضل مقارنةً بالإعداد الحالي.

هنا، يتم نسخ البيانات المخزنة في كل كتلة عبر 3 عقد، لذلك إذا تعطلت أي عقدة فلن يكون هناك فقدان للبيانات؛ فهي تحتوي على آلية نسخ احتياطي واستعادة مناسبة.

يتصل نظام ملفات HDFS بمكونات HBase ويخزن كمية كبيرة من البيانات بطريقة موزعة.

نموذج بيانات HBase

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

يتكون نموذج بيانات HBase من العناصر التالية:

  • مجموعة من الجداول
  • يحتوي كل جدول على عائلات الأعمدة والصفوف
  • يجب أن يحتوي كل جدول على عنصر مُعرَّف كمفتاح أساسي.
  • يعمل مفتاح الصف كمفتاح أساسي في HBase.
  • أي عملية وصول إلى جداول HBase تستخدم هذا المفتاح الأساسي.
  • يمثل كل عمود موجود في HBase سمة تتوافق مع كائن.

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

فيما يلي أمثلة على حالات استخدام HBase مع شرح مفصل للحل الذي يقدمه HBase لمختلف المشاكل التقنية.

المشكلة بيان الحلول
يواجه قطاع الاتصالات التحديات التقنية التالية: تخزين مليارات سجلات تفاصيل المكالمات (CDR) التي يتم إنشاؤها بواسطة مجال الاتصالات؛ وتوفير الوصول في الوقت الفعلي إلى سجلات تفاصيل المكالمات ومعلومات الفوترة للعملاء؛ وتوفير حل فعال من حيث التكلفة مقارنة بأنظمة قواعد البيانات التقليدية. يتم استخدام HBase لتخزين مليارات الصفوف من سجلات المكالمات التفصيلية. إذا تمت إضافة 20 تيرابايت من البيانات شهريًا إلى قاعدة بيانات RDBMS الحالية، فسوف يتدهور الأداء. للتعامل مع كمية كبيرة من البيانات في حالة الاستخدام هذه، يعد HBase هو الحل الأفضل. يقوم HBase بإجراء استعلامات سريعة وعرض السجلات.
يُنتج القطاع المصرفي ملايين السجلات يومياً. إضافةً إلى ذلك، يحتاج هذا القطاع إلى حلول تحليلية قادرة على كشف الاحتيال في المعاملات المالية. لتخزين ومعالجة وتحديث كميات هائلة من البيانات ولإجراء التحليلات، فإن الحل الأمثل هو دمج HBase مع العديد من مكونات نظام Hadoop البيئي.

وبصرف النظر عن ذلك، يمكن استخدام HBase:

  • كلما دعت الحاجة إلى تطبيقات تتطلب عمليات كتابة مكثفة.
  • لإجراء تحليلات السجلات عبر الإنترنت وإنشاء تقارير الامتثال.

آلية التخزين في HBase

HBase هي قاعدة بيانات عمودية، وتُخزَّن البيانات في جداول. تُرتَّب الجداول حسب RowId. كما هو موضح أدناه، تحتوي HBase على RowId، وهو عبارة عن مجموعة من عائلات الأعمدة الموجودة في الجدول.

تتكون عائلات الأعمدة الموجودة في المخطط من أزواج مفتاح-قيمة. وبالتدقيق، نجد أن كل عائلة أعمدة تحتوي على عدة أعمدة. تُخزَّن قيم الأعمدة في ذاكرة القرص. ولكل خلية في الجدول بياناتها الوصفية الخاصة، مثل الطابع الزمني ومعلومات أخرى.

يظهر أدناه تخطيط التخزين الموجه بالأعمدة، مع مفاتيح الصفوف وعائلات الأعمدة والخلايا.

آلية تخزين HBase التي توضح مفتاح الصف، وعائلات الأعمدة، والأعمدة، والخلايا

فيما يلي المصطلحات الرئيسية التي تمثل مخطط جدول HBase:

  • الجدول: مجموعة الصفوف الموجودة.
  • الصف: مجموعة من عائلات الأعمدة.
  • عائلة الأعمدة: مجموعة من الأعمدة.
  • العمود: مجموعة من أزواج المفاتيح والقيم.
  • مساحة الاسم: مجموعة منطقيةping من الجداول.
  • الخلية: مجموعة {الصف، العمود، الإصدار} التي تحدد تعريف الخلية بدقة في HBase.

المخازن الموجهة نحو الأعمدة مقابل المخازن الموجهة نحو الصف

تختلف أنظمة التخزين العمودية عن أنظمة التخزين الصفية في آلية التخزين. وكما هو معروف، تخزن النماذج العلائقية التقليدية البيانات بتنسيق قائم على الصفوف، أي على شكل صفوف من البيانات. أما أنظمة التخزين العمودية فتخزن جداول البيانات على شكل أعمدة ومجموعات أعمدة.

يوضح الجدول التالي بعض الاختلافات الرئيسية بين هذين المخزنين.

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

شرح قراءة وكتابة بيانات HBase

يوضح الرسم التخطيطي أدناه عمليات القراءة والكتابة من العميل إلى ملف HFile.

تدفق بيانات القراءة والكتابة في HBase بين العميل وخادم المنطقة وMemStore وHFile

الخطوة 1) يريد العميل كتابة البيانات، وبالتالي يتواصل أولاً مع خادم المنطقة ثم مع المناطق.

الخطوة 2) تتصل المنطقة بـ MemStore لتخزين البيانات المرتبطة بمجموعة الأعمدة.

الخطوة الثالثة: أولاً، تُخزَّن البيانات في ذاكرة التخزين المؤقت (MemStore)، حيث تُرتَّب، ثم تُنقل إلى ملف HFile. والسبب الرئيسي لاستخدام ذاكرة التخزين المؤقت هو تخزين البيانات في نظام ملفات موزَّع يعتمد على مفتاح الصف. تُوضع ذاكرة التخزين المؤقت في الذاكرة الرئيسية لخادم المنطقة، بينما تُكتب ملفات HFile في نظام ملفات Hadoop الموزع (HDFS).

الخطوة الرابعة) يريد العميل قراءة البيانات من المناطق.

الخطوة 5) وبدوره، يمكن للعميل الوصول مباشرة إلى MemStore ويمكنه طلب البيانات.

الخطوة السادسة) يتصل العميل بملفات HFiles للحصول على البيانات. يقوم العميل بجلب البيانات واسترجاعها.

يحتفظ مخزن الذاكرة (MemStore) بالتعديلات التي تُجرى على المخزن في الذاكرة. يوضح الجدول أدناه التسلسل الهرمي للكائنات في مناطق HBase، من الأعلى إلى الأسفل.

طاولات جدول HBase موجود في مجموعة HBase
المنطقة المناطق للجداول المعروضة
المتجر يخزن واحداً لكل عائلة أعمدة لكل منطقة في الجدول
ميمستور يُستخدم MemStore لكل مخزن بيانات في كل منطقة من مناطق الجدول. يقوم هذا النظام بفرز البيانات قبل إرسالها إلى HFiles. ويؤدي الفرز إلى تحسين أداء الكتابة والقراءة.
ملف المتجر StoreFiles لكل مخزن لكل منطقة للجدول
حظر الكتل الموجودة داخل StoreFiles

HBase مقابل HDFS

يعمل HBase على نظام ملفات Hadoop الموزع (HDFS) و Hadoop. وتتمثل بعض الاختلافات الرئيسية بين HDFS و HBase في عمليات معالجة البيانات.

HBase HDFS
عمليات ذات زمن انتقال منخفض عمليات ذات زمن انتقال مرتفع
يقرأ ويكتب بشكل عشوائي اكتب مرة واحدة، واقرأ مرات عديدة
الوصول إليها من خلال أوامر شلواجهة برمجة تطبيقات العميل في Java، REST، Avro، أو Thrift يتم الوصول إليها بشكل أساسي من خلال MapReduce (MR) وظائف
يمكن تنفيذ كل من التخزين والمعالجة مخصص فقط لمناطق التخزين

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

الأسئلة الشائعة

نعم. HBase هي قاعدة بيانات NoSQL موزعة وموجهة نحو الأعمدة، مصممة على غرار Google Bigtable مبني على HDFS. يقوم بتخزين البيانات المتفرقة في جداول من عائلات الأعمدة ولا يستخدم مخططات ثابتة أو عمليات ربط SQL مثل قواعد البيانات العلائقية.

يسجل سجل العمليات (WAL)، المعروف أيضًا باسم HLog، كل عملية كتابة على خادم المنطقة قبل إدخالها إلى ذاكرة التخزين المؤقت (MemStore). يُخزن هذا السجل على نظام ملفات Hadoop الموزع (HDFS)، لذا في حال تعطل خادم المنطقة قبل إتمام عملية التفريغ، يقوم HBase بإعادة تشغيل سجل العمليات لاستعادة التعديلات غير المحفوظة.

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

كلاهما عبارة عن قواعد بيانات NoSQL مستوحاة من Bigtable، لكن HBase يعمل على HDFS مع خادم رئيسي واحد نشط وتناسق قوي، بينما Cassandra يتميز HBase بأنه لا يتطلب خادمًا رئيسيًا مع إمكانية ضبط النسخ المتماثل، وهو متسق في النهاية. يناسب HBase تحليلات Hadoop؛ Cassandra يكتب البدلات باستمرار.

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

تنقسم المنطقة تلقائيًا عندما يتجاوز حجم مخزنها حدًا معينًا. يقوم خادم المنطقة بتقسيمها إلى منطقتين فرعيتين عند مفتاح الصف الأوسط، وقد يقوم HMaster بإعادة تعيين إحداهما إلى خادم آخر لتحقيق توازن الحمل.

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

نعم. مساعد الطيار جيثب مسودات HBase Java كود العميل، وأوامر الصدفة، وفلاتر المسح الضوئي من تعليق قصير. Revراجع مخرجاته للتأكد من صحة أسماء الجداول وعائلات الأعمدة وفئات واجهة برمجة التطبيقات مثل الاتصال والجدول قبل تشغيله على مجموعة حقيقية.

تلخيص هذه التدوينة بـ: