كيفية تثبيت HIVE على Ubuntu (دليل التنزيل والإعداد)

⚡ ملخص ذكي

يتم تثبيت Apache Hive على Ubuntu باعتبارها طبقة رقيقة لمستودع البيانات فوق مجموعة Hadoop قيد التشغيل بالفعل، فإن الإعداد هو في الغالب مسألة فك ضغط أرشيف واحد وتوجيه ثلاثة متغيرات بيئية إلى الدلائل الصحيحة.

  • 🧱 هادوب أولاً: يجب أن يكون كل برنامج Hadoop daemon قيد التشغيل بالفعل، لأن Hive يخزن بيانات جدوله على HDFS ويرسل مهامه إلى المجموعة.
  • ⬇️ مصدر التنزيل: تأتي الإصدارات الثنائية من صفحة Apache المرآة، وقد وصل خط 3.x إلى نهاية عمره في أكتوبر 2024.
  • 📁 ملفان للتكوين: يجب أن يكون HIVE_HOME موجودًا في bashrc، ويجب أن يكون HADOOP_HOME موجودًا في hive-config.sh داخل دليل bin الخاص بـ Hive.
  • 💾 مجلدات HDFS: يجب أن تكون مجلدات المستودع والمجلدات المؤقتة موجودة على نظام ملفات Hadoop الموزع (HDFS) مع إذن الكتابة للمجموعة قبل إنشاء الجدول الأول.
  • 🧩 خطوة المخطط: تقوم أداة schematool بإنشاء جداول metastore، ويرفض Hive 3.x والإصدارات الأحدث البدء باستخدام مخطط غير مهيأ.
  • 🔨 تحقق بسرعة: يثبت بيان الإنشاء متبوعًا ببيان الوصف أن الصدفة ومخزن البيانات الوصفية ونظام ملفات HDFS متصلة ببعضها البعض بشكل صحيح.

كيفية تثبيت Hive على Ubuntu

قبل تثبيت Apache Hive، نحتاج إلى شخص مخصص Hadoop التثبيت والتشغيل مع جميع برامج Hadoop.

لتثبيت هادوب، راجع هذا الصفحة .

بمجرد التأكد من عمل جميع خدمات Hadoop بشكل سليم، ابدأ بتثبيت جزء Hive. يشرح الدليل التالي أربع مراحل:

عملية تثبيت أباتشي هايف

  1. المتطلبات الأساسية وتوافق الإصدارات
  2. تركيب الخلية
  3. تهيئة مخطط ميتاستور
  4. أوامر قذيفة الخلية

المتطلبات الأساسية لتثبيت Apache Hive على Ubuntu

لا تُعدّ Hive قاعدة بيانات مستقلة. إنها طبقة استعلام تُترجم HiveQL إلى مهام تُنفّذ على مجموعة موجودة، لذا فإنّ كل عملية تثبيت فاشلة تقريبًا tracيعود الأمر إلى شرط أساسي مفقود بدلاً من Hive نفسه. تأكد مما يلي قبل تنزيل أي شيء:

  • JDK مدعوم. يعمل Hive 4.1.x على JDK 17، بينما يرفع Hive 4.2.x الحد الأدنى إلى JDK 21. تحقق من الإصدار باستخدام جافا - النسخ وتأكد من تصدير JAVA_HOME.
  • مجموعة هادوب قيد التشغيل. يجب أن يكون كل من NameNode و DataNode قيد التشغيل. قم بتشغيل JPS وتأكد من ظهور NameNode و DataNode و ResourceManager و NodeManager جميعها في القائمة.
  • إمكانية الكتابة إلى نظام ملفات Hadoop الموزع (HDFS). يحتاج الحساب الذي يبدأ تشغيل Hive إلى إذن لإنشاء مجلدات ضمن HDFS.
  • نسخ متطابقة. تم بناء Hive 4.2.0 باستخدام Hadoop 3.4.1 و Tez 0.10.5. وصل دعم سلسلة Hive 3.x إلى نهايته في أكتوبر 2024، لذا يجب أن يستهدف التثبيت الجديد سلسلة 4.x.
  • موارد مجانية. يُعد إعداد التعلم أحادي العقدة مناسبًا لما يقرب من 4 جيجابايت من ذاكرة الوصول العشوائي و20 جيجابايت من مساحة القرص الحرة.

بعد تحديد تلك الخيارات، ستسير عملية التنزيل وفك الضغط الموضحة أدناه بسلاسة ودون أي مفاجآت.

كيفية تثبيت الخلية على Ubuntu

فيما يلي عملية خطوة بخطوة حول كيفية تثبيت Hive in Ubuntu:

الخطوة 1) تنزيل وتثبيت الخلية على Ubuntu

لتحميل برنامج Hive الثابت، يُرجى الرجوع إلى Apache URL كما هو مذكور أدناه.

https://www.apache.org/dyn/closer.cgi/hive/ — اذهب إلى URL ثم اختر رابط التنزيل من خادم Apache البديل. صفحة تنزيلات أباتشي هايف يعرض هذا الجدول أي إصدارات Hadoop تتوافق مع أي إصدار.

تفتح صفحة المرآة بقائمة أدلة إصدارات Hive المتاحة، كما هو موضح أدناه.

صفحة مرآة أباتشي التي تعرض أدلة إصدارات أباتشي هايف المتاحة

اختر أحدث إصدار من إعداد Hive. (في حالتي الحالية، هو Hive – 3.1.2). يعرض مجلد الإصدار ملفات الأرشيف الثنائية والمصدرية جنبًا إلى جنب.

مجلد إصدار Hive الذي يعرض أرشيفات التوزيع الثنائية والمصدرية

انقر على ملف bin وسيبدأ التنزيل.

مطالبة المتصفح بتنزيل ملف توزيع apache-hive bin tar.gz

الخطوة 2) مثالtracملف tar

انتقل إلى موقع ملف tar الذي تم تنزيله، ثم extracقم بفك ضغط ملف tar باستخدام الأمر التالي لتثبيت Hive على Ubuntu على نظامك

tar -xvf  apache-hive-3.1.2-bin.tar.gz

يعرض الطرفية كل ملف أثناء فك ضغطه في دليل Hive الجديد.

مخرجات الطرفية أثناء تشغيل أرشيف Hive tartracتيد أون Ubuntu

الخطوة 3) ضع خصائص تكوين مختلفة في Apache Hive

في هذه الخطوة، سنقوم بأمرين:

  1. وضع مسار Hive الرئيسي في ملف bashrc
  2. تحديد موقع مسار Hadoop الرئيسي في ملف hive-config.sh

1) اذكر مسار Hive في ملف ~/.bashrc

افتح الملف للتعديل باستخدام الأمر الموضح أدناه.

أمر يفتح ملف bashrc لتعديل متغيرات بيئة Hive

  • افتح ملف bashrc كما هو موضح في لقطة الشاشة أعلاه
  • قم بتحديد مسار Hive الرئيسي، أي مسار HIVE_HOME، في ملف bashrc وقم بتصديره كما هو موضح أدناه

تمت إضافة سطور تصدير HIVE_HOME و PATH في نهاية ملف bashrc

Code يجب وضعها في ملف bashrc:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

أعد تحميل الملف باستخدام المصدر ~ / .bashrc وبالتالي، يسري مفعول المسار الجديد في جلسة الطرفية الحالية.

2) تصدير مسار Hadoop في hive-config.sh

للتواصل مع نظام Hadoop البيئي، نحدد مسار Hadoop الرئيسي في ملف إعدادات Hive. افتح ملف hive-config.sh كما هو موضح أدناه.

الأمر المستخدم لفتح ملف hive-config.sh من مجلد bin الخاص بـ Hive

قم بذكر مسار HADOOP_HOME في ملف hive-config.sh كما هو موضح أدناه.

تم تعريف مسار HADOOP_HOME داخل ملف hive-config.sh

الخطوة 4) إنشاء أدلة الخلية في Hadoop

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

أوامر نظام ملفات Hadoop الموزع (HDFS) التي تُنشئ مجلدات Hive المؤقتة والمستودعات

منح صلاحيات الجذر لإنشاء مجلدات Hive في Hadoop. إذا لم تظهر أي رسالة خطأ، فهذا يعني أن Hadoop قد منح الصلاحيات لمجلدات Hive بنجاح.

يعرض الطرفية أذونات الكتابة الجماعية الممنوحة لمجلدات Hive على HDFS

الخطوة 5) ادخل إلى واجهة Hive

ادخل إلى خلية النحل عن طريق الدخول إلى '. /خلية نحل' الأمر كما هو موضح أدناه.

تم فتح موجه أوامر Hive من مجلد bin الخاص بـ Hive على Ubuntu

كيفية تهيئة مخطط Hive ميتاستور

يحتفظ Hive بكل اسم جدول واسم عمود ونوع بيانات في مخزن علائقي يُسمى مخزن البيانات الوصفية. عند تثبيت جديد، يكون هذا المخزن فارغًا، ومن Hive 3.x فصاعدًا، يرفض النظام بدء التشغيل حتى يتم إنشاء جداول المخطط. تقوم أداة schematool الموجودة في مجلد bin الخاص بـ Hive بإنشائها.

بالنسبة لإعداد تعليمي لمستخدم واحد، فإن قاعدة بيانات Derby المرفقة كافية:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

يطبع الأمر إصدار المخطط الذي أنشأه وينتهي بـ اكتملت أداة المخططيقوم برنامج Derby بكتابة ملفاته في أي دليل تم تشغيل الأمر منه، لذا قم دائمًا بتشغيل Hive من نفس الدليل بعد ذلك.

لا يقبل ديربي سوى جلسة نشطة واحدة في كل مرة، مما يجعله غير مناسب لمجموعة خوادم مشتركة. وجّه هايف إلى MySQL بدلاً من ذلك، قم بإضافة خصائص الاتصال إلى ملف hive-site.xml وأعد تشغيل الأداة بنوع قاعدة بيانات مختلف:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

تتضمن قائمة العقارات الكاملة ومواقع السائقين دليلًا حول كيفية القيام بذلك قم بتهيئة مخزن بيانات Hive باستخدام MySQLهناك علمان آخران جديران بالتذكر:

  • -معلومات يعرض إصدار المخطط المسجل حاليًا في مخزن البيانات الوصفية دون تغيير أي شيء.
  • -ترقية المخطط يقوم بنقل مخزن البيانات الوصفية الحالي إلى إصدار المخطط الخاص بإصدار Hive المثبت حديثًا.

بعد وضع المخطط، يصبح النظام جاهزًا لقبول أول عبارة HiveQL.

أوامر قذيفة الخلية

سنقوم هنا بإنشاء جدول نموذجي باستخدام أمر "create" في واجهة سطر الأوامر Hive مع أسماء الأعمدة.

نموذج برمجي لإنشاء قاعدة بيانات في Hive. تُظهر لقطة الشاشة أدناه عبارة الإنشاء ومخرجات الوصف تباعًا.

مخرجات أوامر Hive shell لإنشاء الجدول ووصف المنتج

من لقطة الشاشة أعلاه، يمكننا ملاحظة ما يلي:

1) إنشاء جدول نموذجي بأسماء الأعمدة في Hive

  • اسم الجدول هنا هو "المنتج" مع ثلاثة أسماء أعمدة المنتج والاسم والسعر
  • يتم تحديد أسماء الأعمدة الثلاثة حسب نوع البيانات الخاص بها.
  • جميع الحقول تنتهي بفاصلة ','

2) عرض معلومات جدول Hive

  • باستخدام الأمر "describe"، يمكننا رؤية معلومات الجدول الموجودة في Hive
  • يعرض هذا الجدول أسماء الأعمدة وأنواع البيانات الخاصة بها الموجودة في مخطط الجدول.
  • في النهاية، سيعرض الوقت المستغرق لتنفيذ هذا الأمر وعدد الصفوف التي تم جلبها

نموذج برمجي لإنشاء قاعدة بيانات في خلية النحل (للفحص الذاتي)

1) إنشاء جدول المنتج (المنتج عدد صحيح، اسم المنتج سلسلة نصية، السعر عدد عشري)

Row format delimited
Fields terminated by ',';

2) وصف المنتج؛

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

أخطاء شائعة في تثبيت Hive Ubuntu وكيفية اصلاحها

معظم حالات الفشل عند التشغيل الأول ناتجة عن بيئة Hive المحيطة وليس عن Hive نفسه. يوضح الجدول أدناه الرسائل الأكثر ظهورًا وأسبابها والأمر الذي يحلها.

رسالة على الشاشة سبب محتمل حل
خلية: الأمر غير موجود HIVE_HOME/bin غير موجود في PATH أعد التحقق من أسطر التصدير في ملف bashrc، ثم قم بتشغيل الأمر المصدر ~ / .bashrc
لم يتم العثور على معلومات الإصدار في مخزن البيانات الوصفية لم يتم تهيئة مخطط مخزن البيانات الوصفية مطلقًا قم بتشغيل أداة schematool مع الخيار -initSchema لنوع قاعدة البيانات المحدد
فشلت المكالمة إلى localhost:9000 بسبب خطأ في الاتصال نظام ملفات HDFS غير قيد التشغيل قم بتشغيل خدمات Hadoop وتأكد من ظهور NameNode و DataNode في JPS
عقدة الاسم في الوضع الآمن لا يزال NameNode في وضع بدء التشغيل الآمن الخروج من الوضع الآمن مع hdfs dfsadmin -safemode leave
تم رفض الإذن: الوصول = كتابة على /user/hive/warehouse يفتقر دليل المستودع إلى إذن الكتابة الجماعية إعادة التقديم hdfs dfs -chmod g+w في مستودعات البيانات ودلائل الملفات المؤقتة
خطأ NoSuchMethodError في Preconditions.checkArgument يُصدر كل من Hive و Hadoop إصدارات مختلفة من علب Guava. احذف ملف Guava jar القديم الموجود في مجلد مكتبة Hive وانسخ ملف Hadoop مكانه.

إحدى الطرق السريعة لفصل مشكلة Hive عن مشكلة Hadoop هي تشغيل JPS أولاً، إذا كانت البرامج الخفية مفقودة، فالمشكلة تكمن في المجموعة؛ أما إذا كانت موجودة وما زال الاتصال بالخادم يفشل، فالمشكلة تكمن في إعدادات Hive أو مخطط قاعدة البيانات الوصفية. بمجرد استقرار الاتصال بالخادم، عوامل تشغيل HiveQL والوظائف المدمجة المرجع هو المحطة التالية الطبيعية.

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

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

يعمل Hive في أي مكان يعمل فيه JVM و Hadoop، لكن البرامج النصية الخاصة به تفترض تخطيط Unix. Windows تستخدم معظم الفرق WSL2 أو صورة Docker؛ macOS يعمل نفس ملف tar بمجرد تصدير JAVA_HOME و HADOOP_HOME.

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

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

يقوم Copilot بإنشاء مسودات سريعة لملفات bashrc، وكتل hive-site.xml، واستدعاءات schematool، ويمكن لبرامج التشغيل تنفيذ هذه المسودات في بيئة معزولة. تعامل مع الناتج كمسودة أولية: لا تزال أرقام الإصدارات والمنافذ ومسارات الدليل بحاجة إلى التحقق منها على مجموعتك الخاصة.

يُعدّ توفير حوالي 4 جيجابايت من ذاكرة الوصول العشوائي و20 جيجابايت من مساحة القرص الحرة مناسبًا للتعلم، نظرًا لأن Hive عبارة عن عميل خفيف. أما حجم عقد الإنتاج فيتركز حول مجموعة Hadoop وقاعدة بيانات metastore وليس حول Hive.

قم بفك ضغط الإصدار الجديد بجانب الإصدار القديم، ثم أعد توجيه HIVE_HOME، ثم شغّل أداة schematool مع الخيار -upgradeSchema لضمان تطابق قاعدة البيانات الوصفية. لإزالة الإصدار الجديد، ما عليك سوى حذف مجلد Hive ثم إزالة الملفات غير الضرورية.ping تم حفظ سطور التصدير من ملف bashrc؛ بيانات مستودع HDFS باقية.

لا. تم إيقاف استخدام MapReduce كمحرك تنفيذ في Hive، ويعمل Hive 4.x على Apache Tez افتراضيًا. مابريديوس لا يزال من المفيد فهم هذا النموذج لأن Tez يتبع نفس نموذج الوظائف الموجهة.

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