تحسين Apache HBase باستخدام Apache Ambari في Azure HDInsight

Apache Ambari هي واجهة ويب لإدارة ومراقبة مجموعات HDInsight. للحصول على مقدمة حول Ambari Web UI، راجع إدارة مجموعات HDInsight باستخدام واجهة مستخدم الويب Apache Ambari.

تم تعديل تكوين Apache HBase من علامة التبويب HBase Configs. تصف الأقسام التالية بعض إعدادات التكوين المهمة التي تؤثر على أداء HBase.

قم بتعيين HBASE_HEAPSIZE

إشعار

تحتوي هذه المقالة على مراجع للمصطلح رئيسي، وهو مصطلح لم تعد شركة Microsoft تستخدمه. عند إزالة المصطلح من البرنامج، بالتالي سنزيله من هذه المقالة.

يحدد حجم الكومة HBase الحد الأقصى لمقدار الكومة المراد استخدامه بالميغابايت بواسطة خوادم المنطقة والرئيسية . القيمة الافتراضية هي 1000 ميغا بايت. يجب ضبط هذه القيمة لحمل عمل الكتلة.

  1. للتعديل، انتقل إلى الجزء Advanced HBase-env في علامة التبويب HBase Configs، ثم ابحث عن الإعداد HBASE_HEAPSIZE .

  2. قم بتغيير القيمة الافتراضية إلى 5000 ميغا بايت.

    `Apache Ambari HBase memory heapsize`.

قم بتحسين أعباء العمل المليئة بالقراءة

تعد التكوينات التالية مهمة لتحسين أداء أعباء العمل المليئة بالقراءة.

كتلة حجم ذاكرة التخزين المؤقت

ذاكرة التخزين المؤقت للكتلة هي ذاكرة التخزين المؤقت للقراءة. تحظر hfile.block.cache.size عناصر تحكم المعلمة حجم ذاكرة التخزين المؤقت. القيمة الافتراضية هي 0.4، وهي 40 بالمائة من إجمالي ذاكرة خادم المنطقة. أكبر حجم ذاكرة التخزين المؤقت للكتلة، ستكون عمليات القراءة العشوائية أسرع.

  1. لتعديل هذه المعلمة، انتقل إلى علامة التبويب Settings في علامة التبويب HBase Configs، ثم حدد موقع % of RegionServer Allocated to Read Buffers.

    Apache HBase memory block cache size.

  2. لتغيير القيمة، حدد رمز Edit.

حجم Memstore

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

  • hbase.regionserver.global.memstore.UpperLimit: يحدد النسبة المئوية القصوى لخادم المنطقة الذي يمكن أن تستخدمه Memstore مجتمعة.

  • hbase.regionserver.global.memstore.LowerLimit: يحدد الحد الأدنى للنسبة المئوية لخادم المنطقة الذي يمكن أن تستخدمه Memstore مجتمعة.

لتحسين القراءة العشوائية، يمكنك تقليل حدود Memstore العليا والسفلى.

عدد الصفوف التي تم جلبها عند المسح من القرص

يحدد الإعداد hbase.client.scanner.caching عدد الصفوف المقروءة من القرص عند استدعاء الأسلوب next في الماسح الضوئي. القيمة الافتراضية هي 100. كلما زاد الرقم، قل عدد المكالمات البعيدة التي يتم إجراؤها من العميل إلى خادم المنطقة، مما يؤدي إلى عمليات مسح أسرع. ومع ذلك، يزيد هذا الإعداد ضغط الذاكرة على العميل.

Apache HBase number of rows fetched.

هام

لا تقم بتعيين القيمة بحيث يكون الوقت بين استدعاء الطريقة التالية على الماسح أكبر من مهلة الماسح. يتم تحديد مدة مهلة الماسح بواسطة الخاصية hbase.regionserver.lease.period .

تحسين أحمال العمل الشاقة للكتابة

التكوينات التالية مهمة لتحسين أداء أحمال العمل الشاقة للكتابة.

الحد الأقصى لحجم ملف المنطقة

يخزن HBase البيانات بتنسيق ملف داخلي، يسمى HFile. تحدد الخاصية hbase.hregion.max.filesize حجم منطقة واحدة HFile . يتم تقسيم المنطقة إلى منطقتين إذا كان مجموع الكل HFiles في منطقة أكبر من هذا الإعداد.

`Apache HBase HRegion max filesize`.

كلما زاد حجم ملف المنطقة، قل عدد الانقسامات. يمكنك زيادة حجم الملف لتحديد قيمة ينتج عنها أقصى أداء للكتابة.

تجنب حظر التحديث

  • تحدد الخاصية hbase.hregion.memstore.flush.size الحجم الذي يتم عنده تدفق Memstore إلى القرص. الحجم الافتراضي هو 128 ميغا بايت.

  • hbase.hregion.memstore.block.multiplier يعرف مضاعف كتلة منطقة HBase. القيمة الافتراضية هي 4. الحد الأقصى المسموح به هو 8.

  • يقوم HBase بحظر التحديثات إذا كان Memstore هو (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) بايت.

    باستخدام القيم الافتراضية لحجم التدفق ومضاعف الكتلة، يتم حظر التحديثات عندما يكون حجم Memstore 128 * 4 = 512 ميجابايت. لتقليل عدد عمليات منع التحديث، قم بزيادة قيمة hbase.hregion.memstore.block.multiplier.

Apache HBase Region Block Multiplier.

تحديد حجم Memstore

hbase.regionserver.global.memstore.upperLimit تحدد المعلمات و hbase.regionserver.global.memstore.lowerLimit حجم Memstore. يؤدي تعيين هذه القيم على قدم المساواة مع بعضها البعض إلى تقليل فترات التوقف المؤقت أثناء عمليات الكتابة (مما يؤدي أيضاً إلى مزيد من التنظيف المتكرر) ويؤدي إلى زيادة أداء الكتابة.

تعيين المخزن المؤقت للتخصيص المحلي Memstore

تعرف الخاصية hbase.hregion.memstore.mslab.enabled استخدام المخزن المؤقت للتخصيص المحلي Memstore. عند التمكين (صواب)، يمنع هذا الإعداد تجزئة الكومة أثناء عملية الكتابة المكثفة. القيمة الافتراضية هي صواب.

hbase.hregion.memstore.mslab.enabled.

الخطوات التالية