تحسين 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 ميغا بايت. يجب ضبط هذه القيمة لحمل عمل الكتلة.
للتعديل، انتقل إلى الجزء Advanced HBase-env في علامة التبويب HBase Configs، ثم ابحث عن الإعداد
HBASE_HEAPSIZE
.قم بتغيير القيمة الافتراضية إلى 5000 ميغا بايت.
قم بتحسين أعباء العمل المليئة بالقراءة
تعد التكوينات التالية مهمة لتحسين أداء أعباء العمل المليئة بالقراءة.
كتلة حجم ذاكرة التخزين المؤقت
ذاكرة التخزين المؤقت للكتلة هي ذاكرة التخزين المؤقت للقراءة. تحظر hfile.block.cache.size
عناصر تحكم المعلمة حجم ذاكرة التخزين المؤقت. القيمة الافتراضية هي 0.4، وهي 40 بالمائة من إجمالي ذاكرة خادم المنطقة. أكبر حجم ذاكرة التخزين المؤقت للكتلة، ستكون عمليات القراءة العشوائية أسرع.
لتعديل هذه المعلمة، انتقل إلى علامة التبويب Settings في علامة التبويب HBase Configs، ثم حدد موقع % of RegionServer Allocated to Read Buffers.
لتغيير القيمة، حدد رمز Edit.
حجم Memstore
يتم تخزين جميع عمليات التحرير في مخزن الذاكرة، يسمى Memstore. يعمل هذا المخزن المؤقت على زيادة الحجم الإجمالي للبيانات التي يمكن كتابتها على القرص في عملية واحدة. كما أنه يسرع من الوصول إلى التعديلات الأخيرة. يحدد حجم Memstore المعلمتين التاليتين:
hbase.regionserver.global.memstore.UpperLimit
: يحدد النسبة المئوية القصوى لخادم المنطقة الذي يمكن أن تستخدمه Memstore مجتمعة.hbase.regionserver.global.memstore.LowerLimit
: يحدد الحد الأدنى للنسبة المئوية لخادم المنطقة الذي يمكن أن تستخدمه Memstore مجتمعة.
لتحسين القراءة العشوائية، يمكنك تقليل حدود Memstore العليا والسفلى.
عدد الصفوف التي تم جلبها عند المسح من القرص
يحدد الإعداد hbase.client.scanner.caching
عدد الصفوف المقروءة من القرص عند استدعاء الأسلوب next
في الماسح الضوئي. القيمة الافتراضية هي 100. كلما زاد الرقم، قل عدد المكالمات البعيدة التي يتم إجراؤها من العميل إلى خادم المنطقة، مما يؤدي إلى عمليات مسح أسرع. ومع ذلك، يزيد هذا الإعداد ضغط الذاكرة على العميل.
هام
لا تقم بتعيين القيمة بحيث يكون الوقت بين استدعاء الطريقة التالية على الماسح أكبر من مهلة الماسح. يتم تحديد مدة مهلة الماسح بواسطة الخاصية hbase.regionserver.lease.period
.
تحسين أحمال العمل الشاقة للكتابة
التكوينات التالية مهمة لتحسين أداء أحمال العمل الشاقة للكتابة.
الحد الأقصى لحجم ملف المنطقة
يخزن HBase البيانات بتنسيق ملف داخلي، يسمى HFile
. تحدد الخاصية hbase.hregion.max.filesize
حجم منطقة واحدة HFile
. يتم تقسيم المنطقة إلى منطقتين إذا كان مجموع الكل HFiles
في منطقة أكبر من هذا الإعداد.
كلما زاد حجم ملف المنطقة، قل عدد الانقسامات. يمكنك زيادة حجم الملف لتحديد قيمة ينتج عنها أقصى أداء للكتابة.
تجنب حظر التحديث
تحدد الخاصية
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
.
تحديد حجم Memstore
hbase.regionserver.global.memstore.upperLimit
تحدد المعلمات و hbase.regionserver.global.memstore.lowerLimit
حجم Memstore. يؤدي تعيين هذه القيم على قدم المساواة مع بعضها البعض إلى تقليل فترات التوقف المؤقت أثناء عمليات الكتابة (مما يؤدي أيضاً إلى مزيد من التنظيف المتكرر) ويؤدي إلى زيادة أداء الكتابة.
تعيين المخزن المؤقت للتخصيص المحلي Memstore
تعرف الخاصية hbase.hregion.memstore.mslab.enabled
استخدام المخزن المؤقت للتخصيص المحلي Memstore. عند التمكين (صواب)، يمنع هذا الإعداد تجزئة الكومة أثناء عملية الكتابة المكثفة. القيمة الافتراضية هي صواب.