كيفية تثبيت HBase على Ubuntu: دليل خطوة بخطوة

⚡ ملخص ذكي

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

  • 🧩 طرق التثبيت: يعمل الوضع المستقل في جهاز JVM واحد على نظام الملفات المحلي؛ أما الأوضاع الموزعة فتخزن البيانات في Hadoop HDFS.
  • ⬇️ تنزيل: قم بتنزيل ملف HBase الثنائي المضغوط من موقع Apache HBase وقم بفك ضغطه في مجلدك الرئيسي.
  • ⚙️ ترتيب: قم بتعيين JAVA_HOME و HBASE_HOME، ثم حدد hbase.rootdir ومجلدات ZooKeeper في hbase-site.xml.
  • ▶ ️ بدء التشغيل: قم بتشغيل start-hbase.sh، ثم قم بتأكيد HMaster باستخدام jps، ثم افتح موجه الأوامر التفاعلي باستخدام hbase shell.
  • 🌐 شبه موزع: قم بتوجيه hbase.rootdir إلى HDFS، وقم بتمكين hbase.cluster.distributed، وقم بتعيين نصاب ZooKeeper ومنفذ العميل.
  • 🩹 استكشاف الأخطاء وإصلاحها: قم بحل أخطاء region-server و ZooKeeper quorum و root-directory و session-timeout عن طريق تعديل ملفي hosts و hbase-site.xml.

كيفية تثبيت Apache HBase على Ubuntu في أوضاع مستقلة، وشبه موزعة، وموزعة بالكامل

أباتشي إتش بيس عبارة عن نظام موزع، قاعدة بيانات موجهة نحو الأعمدة يعمل هذا النظام على نظام ملفات هادوب الموزع (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، سيتم فتح صفحة التنزيلات كما هو موضح أدناه.

افتح صفحة تنزيلات Apache HBase في متصفح للحصول على ملف الإصدار المضغوط.

الخطوة 2) حدد الإصدار المستقر كما هو موضح أدناه، إصدار HBase 1.1.2.

اختر الإصدار المستقر HBase 1.1.2 من صفحة التنزيل

الخطوة 3) انقر على hbase-1.1.2-bin.tar.gz. سيتم تنزيل ملف tar. انسخ ملف tar إلى موقع التثبيت.

انقر على رابط الملف الثنائي hbase-1.1.2-bin.tar.gz لتنزيل ملف 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 في الموقع، كما هو موضح أدناه.

تعديل ملف 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.

إضافة مسار HBASE_HOME إلى ملف bashrc للوضع المستقل

الخطوة 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-site.xml في gedit مع خصائص rootdir المستقلة و ZooKeeper

هنا نقوم بوضع خاصيتين:

  • واحد لدليل HBase الرئيسي، و
  • أما الثاني فهو خاص بدليل البيانات الذي يتوافق مع حارس حديقة الحيوان.

تشير جميع أنشطة HMaster و ZooKeeper إلى ملف hbase-site.xml هذا.

الخطوة 6) اذكر عناوين IP. افتح ملف hosts الموجود في موقع /etc. واذكر عناوين IP كما هو موضح أدناه.

تعديل ملف /etc/hosts لربط عناوين IP الخاصة بالجهاز

الخطوة 7) الآن، شغّل الملف start-hbase.sh الموجود في المسار hbase-1.1.1/bin كما هو موضح أدناه. يمكنك بعد ذلك التحقق باستخدام الأمر jps لمعرفة ما إذا كان HMaster قيد التشغيل أم لا.

مخرجات أمر jps تُظهر عملية HMaster التي تعمل في وضع التشغيل المستقل

الخطوة 8) ابدأ تشغيل واجهة HBase. يمكن بدء تشغيل واجهة HBase باستخدام قذيفة hbase سيؤدي هذا الأمر إلى دخول وضع الصدفة التفاعلية كما هو موضح في لقطة الشاشة أدناه. بمجرد دخول وضع الصدفة، يمكننا تنفيذ جميع أنواع الأوامر.

تم تشغيل موجه الأوامر التفاعلي لـ HBase باستخدام أمر hbase shell

لا يتطلب الوضع المستقل بدء تشغيل برامج 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 ومسار خوادم المنطقة في الموقع، وقم بتصدير الأمر كما هو موضح أدناه.

تعديل ملف hbase-env.sh باستخدام متغير البيئة JAVA_HOME ومسار خوادم المنطقة لوضع التوزيع الزائف

الخطوة 4) في هذه الخطوة، سنقوم بفتح ملف ~/.bashrc ونذكر مسار HBASE_HOME كما هو موضح في لقطة الشاشة أدناه.

تحديد مسار HBASE_HOME في ملف bashrc لوضع التوزيع الزائف

الخطوة 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 الذي يحتوي على الخصائص الموزعة الزائفة.

ملف hbase-site.xml مع خصائص HDFS وZooKeeper شبه الموزعة

يظهر أدناه التكوين المتبقي لبرنامج ZooKeeper.

استكمالًا لتكوين ZooKeeper في ملف hbase-site.xml للوضع شبه الموزع

لكل خاصية في الملف دور محدد:

  • إعداد دليل الجذر لـ 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 كما هو موضح أدناه.

تشغيل الأمر start-all.sh لبدء تشغيل خدمات Hadoop

بعد ذلك، قم بتشغيل خدمات HBase باستخدام hbase-start.sh، كما هو موضح أدناه.

بدء تشغيل خدمات HBase باستخدام البرنامج النصي start-hbase.sh في الوضع شبه الموزع

والآن تحقق من العمليات الجارية باستخدام أمر jps، كما هو موضح أدناه.

مخرجات أمر jps التي تعرض قائمة ببرامج Hadoop وHBase قيد التشغيل

تثبيت الوضع الموزع بالكامل لـ 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>

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

يحتاج HBase إلى دعم Java بيئة التشغيل مع ضبط متغير البيئة JAVA_HOME. كما تتطلب الأوضاع شبه الموزعة والموزعة بالكامل بيئة تشغيل قيد التشغيل. Hadoop HDFS المجموعة. الوضع المستقل يحتاج فقط Javaلأنه يستخدم نظام الملفات المحلي ويحتوي على برنامج ZooKeeper الخاص به.

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

عدّل الملف conf/hbase-env.sh وأضف السطر export JAVA_HOME=/path/to/your/jdk، مشيرًا إلى جذر JDK. يقرأ HBase هذه القيمة عند بدء التشغيل. يمكنك أيضًا تصدير JAVA_HOME في الملف ~/.bashrc ليتمكن النظام من العثور عليه. Java على الصعيد العالمي.

يُظهر هذا الدليل HBase 1.1.2، لكن الإصدارات المستقرة الحالية هي HBase 2.5.x و2.6.x، بينما الإصدار 3.0 لا يزال في مرحلة تجريبية. تحتاج الإصدارات الأحدث إلى Java 8 أو 11. تبقى خطوات التنزيل والتكوين والتشغيل كما هي بشكل أساسي.

قم بتشغيل أمر jps وابحث عن عملية HMaster، بالإضافة إلى HRegionServer وHQuorumPeer في الأوضاع الموزعة. يمكنك أيضًا فتح واجهة المستخدم الرسومية لـ HBase Master، أو تشغيل الأمر status داخلها. قذيفة hbase للتأكد من أن المجموعة تعمل.

بشكل افتراضي، يستمع خادم HBase الرئيسي على المنفذ 16000 مع واجهة مستخدم ويب على المنفذ 16010، ويستخدم كل خادم إقليمي المنفذ 16020 مع واجهة مستخدم على المنفذ 16030. يستمع ZooKeeper على منفذ العميل 2181، والذي يتم تعيينه من خلال hbase.zookeeper.property.clientPort.

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

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

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