كيفية تثبيت HBase على Ubuntu: دليل خطوة بخطوة
⚡ ملخص ذكي
تثبيت HBase على Ubuntu يعمل في ثلاثة أوضاع - مستقل، وموزع زائف، وموزع بالكامل - ويغطي كيفية تنزيل ملف tarball الخاص بالإصدار، وتعديل hbase-env.sh و hbase-site.xml، وبدء تشغيل البرامج الخفية، وإصلاح أخطاء بدء التشغيل الشائعة.

أباتشي إتش بيس عبارة عن نظام موزع، قاعدة بيانات موجهة نحو الأعمدة يعمل هذا النظام على نظام ملفات هادوب الموزع (HDFS). قبل البدء، تأكد من أنه مدعوم. Java تم تثبيت بيئة التشغيل وتعيين متغير البيئة JAVA_HOME؛ كما يتطلب الوضعان شبه الموزع والموزع بالكامل بيئة تشغيل عاملة. Hadoop تركيب.
أوضاع تثبيت Apache HBase
يمكن تثبيت Apache HBase في ثلاثة أوضاع. ميزات هذه الأوضاع مذكورة أدناه.
1) تثبيت الوضع المستقل (لا يعتمد على نظام Hadoop)
- هذا هو الوضع الافتراضي لـ HBase.
- يتم تشغيله على نظام الملفات المحلي.
- لا يستخدم Hadoop HDFS.
- لا يمكن تشغيل سوى برنامج HMaster الخفي.
- لا يُنصح باستخدامه في بيئة إنتاجية.
- يعمل في بيئة JVM واحدة.
2) تثبيت الوضع الموزع الزائف (نظام Hadoop أحادي العقدة + تثبيت HBase)
- إنه يعمل Hadoop HDFS.
- جميع البرامج الخفية تعمل على عقدة واحدة.
- يُوصى به لبيئة الإنتاج.
3) التثبيت في الوضع الموزع بالكامل (بيئة Hadoop متعددة العقد + تثبيت HBase)
- إنه يعمل Hadoop HDFS.
- تعمل جميع البرامج الخفية عبر جميع العقد الموجودة في المجموعة.
- يُنصح به بشدة لبيئة الإنتاج.
للحصول على معلومات حول تثبيت Hadoop، راجع هذا دليل تثبيت هادوب.
تستخدم لقطات الشاشة أدناه HBase 1.1.2. الإصدارات المستقرة الحالية هي سلسلة HBase 2.5.x و 2.6.x (Java 8 أو 11)، لكن خطوات التثبيت وملفات التكوين تظل كما هي بشكل أساسي.
كيفية تنزيل نسخة مستقرة من ملف HBase tar
الخطوة 1) اذهب إلى صفحة تنزيلات Apache HBase الرسمية لتنزيل HBase، سيتم فتح صفحة التنزيلات كما هو موضح أدناه.
الخطوة 2) حدد الإصدار المستقر كما هو موضح أدناه، إصدار HBase 1.1.2.
الخطوة 3) انقر على hbase-1.1.2-bin.tar.gz. سيتم تنزيل ملف tar. انسخ ملف tar إلى موقع التثبيت.
كيفية تثبيت HBase في Ubuntu مع الوضع المستقل
فيما يلي الخطوات التفصيلية لتثبيت HBase في الوضع المستقل Ubuntu:
الخطوة 1) ضع الأمر التالي. ضع الملف hbase-1.1.2-bin.tar.gz في المسار /home/hduser.
الخطوة الثانية) قم بفك ضغط الملف بتنفيذ الأمر $tar -xvf hbase-1.1.2-bin.tar.gz. سيؤدي ذلك إلى فك ضغط المحتويات، وإنشاء ملف hbase-1.1.2 في المسار /home/hduser.
الخطوة 3) افتح hbase-env.sh كما هو موضح أدناه واذكر مسار JAVA_HOME في الموقع، كما هو موضح أدناه.
الخطوة 4) افتح ملف ~/.bashrc واذكر مسار HBASE_HOME كما هو موضح أدناه.
export HBASE_HOME=/home/hduser/hbase-1.1.1 export PATH= $PATH:$HBASE_HOME/bin
يظهر أدناه ملف ~/.bashrc المحدث مع إدخال HBASE_HOME.
الخطوة 5) أضف الخصائص في الملف. افتح ملف hbase-site.xml وضع الخصائص التالية داخله.
hduser@ubuntu$ gedit ملف hbase-site.xml (الكود كما هو موضح أدناه)
<property> <name>hbase.rootdir</name> <value>file:///home/hduser/HBASE/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/HBASE/zookeeper</value> </property>
تم فتح ملف hbase-site.xml في gedit هو مبين أدناه.
هنا نقوم بوضع خاصيتين:
- واحد لدليل HBase الرئيسي، و
- أما الثاني فهو خاص بدليل البيانات الذي يتوافق مع حارس حديقة الحيوان.
تشير جميع أنشطة HMaster و ZooKeeper إلى ملف hbase-site.xml هذا.
الخطوة 6) اذكر عناوين IP. افتح ملف hosts الموجود في موقع /etc. واذكر عناوين IP كما هو موضح أدناه.
الخطوة 7) الآن، شغّل الملف start-hbase.sh الموجود في المسار hbase-1.1.1/bin كما هو موضح أدناه. يمكنك بعد ذلك التحقق باستخدام الأمر jps لمعرفة ما إذا كان HMaster قيد التشغيل أم لا.
الخطوة 8) ابدأ تشغيل واجهة HBase. يمكن بدء تشغيل واجهة HBase باستخدام قذيفة hbase سيؤدي هذا الأمر إلى دخول وضع الصدفة التفاعلية كما هو موضح في لقطة الشاشة أدناه. بمجرد دخول وضع الصدفة، يمكننا تنفيذ جميع أنواع الأوامر.
لا يتطلب الوضع المستقل بدء تشغيل برامج Hadoop. يمكن تشغيل HBase بشكل مستقل.
وضع التثبيت الموزع الزائف HBase
هذه طريقة أخرى لتثبيت Apache HBase، تُعرف باسم وضع التثبيت شبه الموزع. فيما يلي خطوات تثبيت HBase باستخدام وضع التثبيت شبه الموزع.
الخطوة 1) ضع hbase-1.1.2-bin.tar.gz في /home/hduser.
الخطوة الثانية) قم بفك ضغط الملف بتنفيذ الأمر $tar -xvf hbase-1.1.2-bin.tar.gz. سيؤدي ذلك إلى فك ضغط المحتويات، وإنشاء ملف hbase-1.1.2 في المسار /home/hduser.
الخطوة 3) افتح hbase-env.sh كما هو موضح أدناه، واذكر مسار JAVA_HOME ومسار خوادم المنطقة في الموقع، وقم بتصدير الأمر كما هو موضح أدناه.
الخطوة 4) في هذه الخطوة، سنقوم بفتح ملف ~/.bashrc ونذكر مسار HBASE_HOME كما هو موضح في لقطة الشاشة أدناه.
الخطوة 5) افتح ملف hbase-site.xml واذكر الخصائص التالية في الملف (الكود كما هو موضح أدناه).
<property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/hbase/zookeeper</value> </property>
يظهر أدناه ملف hbase-site.xml الذي يحتوي على الخصائص الموزعة الزائفة.
يظهر أدناه التكوين المتبقي لبرنامج ZooKeeper.
لكل خاصية في الملف دور محدد:
- إعداد دليل الجذر لـ HBase في خاصية hbase.rootdir.
- بالنسبة للإعداد الموزع، يجب ضبط hbase.cluster.distributed على القيمة true.
- يجب إعداد خاصية النصاب القانوني لـ ZooKeeper هنا.
- يتم إعداد النسخ المتماثل في خاصية dfs.replication. بشكل افتراضي، نضع قيمة النسخ المتماثل على 1. في الوضع الموزع بالكامل، توجد عدة عقد بيانات، لذا يمكنك زيادة النسخ المتماثل عن طريق وضع قيمة أكبر من 1 في خاصية dfs.replication.
- يجب ذكر منفذ العميل في خاصية hbase.zookeeper.property.clientPort.
- يمكن ذكر دليل بيانات ZooKeeper في خاصية hbase.zookeeper.property.dataDir.
الخطوة 6) ابدأ تشغيل خدمات Hadoop أولاً، ثم ابدأ تشغيل خدمات HBase كما هو موضح أدناه. عليك أولاً تشغيل خدمات Hadoop باستخدام الأمر ./start-all.sh كما هو موضح أدناه.
بعد ذلك، قم بتشغيل خدمات HBase باستخدام hbase-start.sh، كما هو موضح أدناه.
والآن تحقق من العمليات الجارية باستخدام أمر jps، كما هو موضح أدناه.
تثبيت الوضع الموزع بالكامل لـ HBase
يعمل الوضع الموزع بالكامل على توسيع الإعداد شبه الموزع ليشمل مجموعة حقيقية.
- يعمل هذا الإعداد في وضع مجموعة Hadoop، حيث يتم إنشاء عقد متعددة عبر المجموعة وتشغيلها.
- التثبيت هو نفسه كما في الوضع الموزع الزائف؛ والفرق الوحيد هو أنه سيتم إنشاؤه عبر عدة عقد.
- ملفات التكوين المذكورة في hbase-site.xml و hbase-env.sh هي نفسها المذكورة في الوضع الزائف.
في الوضع الموزع بالكامل، تأكد من أن إصدار Hadoop على مجموعتك يتطابق مع مكتبات Hadoop المرفقة مع HBase حتى تتواصل البرامج الخفية بشكل صحيح.
استكشاف أخطاء تثبيت HBase وإصلاحها
1) بيان المشكلة: يتم تهيئة الخادم الرئيسي، لكن خوادم المناطق لا تتم تهيئتها.
يتم التواصل بين الخادم الرئيسي وخوادم المناطق عبر عناوين IP الخاصة بها. يستمع الخادم الرئيسي إلى خوادم المناطق التي تعمل أو التي تحمل عنوان IP 127.0.0.1. يُمثل عنوان IP 127.0.0.1 المضيف المحلي، ويُشير إلى المضيف المحلي للخادم الرئيسي نفسه.
السبب:
في عملية الاتصال المزدوجة بين خوادم المنطقة والخادم الرئيسي، يقوم خادم المنطقة بإبلاغ الخادم الرئيسي باستمرار بأن عنوان IP الخاص به هو 127.0.0.1.
حل:
- قم بإزالة عقدة اسم الخادم الرئيسي من إدخال المضيف المحلي الموجود في ملف المضيفين.
- موقع ملف المضيف: /etc/hosts.
ما الذي يجب تغييره:
افتح الملف /etc/hosts وانتقل إلى هذا الموقع.
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost : : 1 localhost3.localdomain3 localdomain3
قم بتعديل التكوين أعلاه كما هو موضح أدناه (قم بإزالة اسم خادم المنطقة كما هو موضح أعلاه).
127.0.0.1 localhost.localdomainlocalhost : : 1 localhost3.localdomain3 localdomain3
2) بيان المشكلة: لم يتم العثور على عنواني: XYZ في قائمة خوادم النصاب في ZooKeeper
السبب:
- لم يتمكن خادم ZooKeeper من البدء، ويظهر خطأ مثل وجود .xyz في اسم الخادم.
- يحاول HBase بدء تشغيل خادم ZooKeeper على جهاز، ولكن في الوقت نفسه لا يستطيع الجهاز العثور على نفسه في تكوين النصاب الموجود في تكوين hbase.zookeeper.quorum.
حل:
- استبدل اسم المضيف باسم المضيف الموجود في رسالة الخطأ.
- إذا كان لديك خادم DNS، فيمكنك تعيين التكوينات التالية في hbase-site.xml: hbase.zookeeper.dns.interface و hbase.zookeeper.dns.nameserver.
3) بيان المشكلة: تم إنشاء دليل جذر لـ HBase من خلال Hadoop DFS
- يقول الخبير أنه يجب عليك تشغيل برنامج ترحيل HBase.
- عند تشغيل ذلك، يستجيب برنامج ترحيل HBase بأنه لا توجد ملفات في الدليل الجذر.
السبب:
- تم إنشاء دليل جديد لـ HBase باستخدام نظام الملفات الموزعة Hadoop.
- يتوقع HBase هنا احتمالين:
1) الدليل الجذر غير موجود.
2) تم تهيئة نسخة تشغيل HBase سابقة من قبل.
حل:
- تأكد من أن دليل HBase الجذر غير موجود حاليًا أو تم تهيئته بواسطة تشغيل سابق لمثيل HBase.
- كجزء من الحل، اتبع هذه الخطوات.
الخطوة 1) استخدم Hadoop dfs لحذف دليل HBase الجذر.
الخطوة 2) يقوم HBase بإنشاء الدليل وتهيئته بنفسه.
4) بيان المشكلة: أحداث انتهاء صلاحية جلسة ZooKeeper
السبب:
- يتم إيقاف تشغيل خوادم HMaster أو HRegion عن طريق طرح استثناءات.
- إذا قمت بمراجعة السجلات، يمكنك معرفة الاستثناءات الفعلية التي تم طرحها.
يوضح ما يلي الاستثناء الذي تم طرحه بسبب انتهاء صلاحية حدث ZooKeeper. الأحداث المميزة هي بعض الاستثناءات التي حدثت في ملف السجل.
رمز ملفات السجل كما هو موضح أدناه:
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec java.io.IOException: TIMED OUT at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906) WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000 INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT] INFO org.apache.zookeeper.ClientCnxn: Server connection successful WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e java.io.IOException: Session Expired at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589) at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945) ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired
حل:
- حجم ذاكرة الوصول العشوائي (RAM) الافتراضي هو 1 جيجابايت. بالنسبة لعمليات الاستيراد طويلة الأمد، يُنصح بالحفاظ على سعة ذاكرة وصول عشوائي (RAM) تزيد عن 1 جيجابايت.
- قم بزيادة مهلة الجلسة لبرنامج ZooKeeper.
- لزيادة مهلة جلسة ZooKeeper، قم بتعديل الخاصية التالية في ملف hbase-site.xml الموجود في مسار مجلد hbase/conf.
- مدة انتهاء الجلسة الافتراضية هي 60 ثانية. يمكنك تغييرها إلى 120 ثانية كما هو موضح أدناه.
<property>
<name> zookeeper.session.timeout </name>
<value>1200000</value>
</property>
<property>
<name> hbase.zookeeper.property.tickTime </name>
<value>6000</value>
</property>
















