كيفية تثبيت وتكوين HIVE Metastore باستخدام MYSQL

ما هو HIVE Metastore؟

Hive metastore هو مستودع يقوم بتخزين البيانات الوصفية (أسماء الأعمدة، وأنواع البيانات، والتعليقات، وما إلى ذلك) المتعلقة بـ Apache Hive باستخدام MySQL أو PostgreSQL. يتم تنفيذ هذا Hive metastore باستخدام الجداول الموجودة في قاعدة بيانات علائقية.

لماذا تستخدم MySQL في Hive كمخزن Metastore:

  • بشكل افتراضي، تأتي Hive مع قاعدة بيانات derby كمخزن تعريفي.
  • يمكن لقاعدة بيانات Derby أن تدعم مستخدمًا نشطًا واحدًا فقط في المرة الواحدة
  • لا ينصح بالديربي في بيئة الإنتاج

لذلك حل ها هو

  • استخدم MYSQL كمخزن Meta في الواجهة الخلفية لتوصيل عدة مستخدمين بـ Hive في وقت واحد
  • MYSQL هو الخيار الأفضل للمتجر التعريفي المستقل

كيفية تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

الخطوة 1) قم بتثبيت MySQL Server
في هذه الخطوة، سنقوم بتنفيذ مهمتين

  1. تركيب خادم mysql
  2. التحقق من خادم mysql وعمليته
  1. باستخدام أمر sudo apt-get install mysql-server، يمكننا تنزيل خادم mysql

قم بتثبيت MySQL كما هو موضح في لقطة الشاشة

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

  1. بعد التثبيت الناجح في النهاية، سيتم تشغيل MySQL كما هو موضح في لقطة الشاشة أدناه

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

الخطوة 2) قم بتثبيت رابط MySQL Java
تثبيت MySQL جافا موصل. هذا لتبعيات جافا وغرض الاتصال

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

الخطوة 3) إنشاء رابط ناعم للموصل
إنشاء رابط ناعم للموصل في دليل Hive lib. هذا من أجل الارتباط الناعم بين Java وMySql.

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

الخطوة 4) تكوين تخزين MySql في الخلية

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

  • اكتب MySql –u root –p متبوعًا بكلمة المرور
  • هنا يمثل –u اسم المستخدم الجذر، ويشير p إلى كلمة المرور
  • بعد إدخال الأمر أعلاه، يجب على المستخدم إدخال كلمة مرور صالحة ثم النقر فوق "إدخال".
  • بعد ذلك سوف يدخل في وضع MySql Shell

الخطوة 5) إنشاء اسم المستخدم وكلمة المرور
إنشاء اسم مستخدم وكلمة مرور لـ MySql، ومنح الامتيازات.

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

علينا تنفيذ الأوامر كما هو موضح أدناه،

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; 
mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';
mysql>  flush privileges;

الخطوة 6) تكوين hive-site.xml

  • بعد الخطوة 5، قم بتعيين اسم المستخدم وكلمة المرور لقاعدة بيانات MySQL ومنح الامتيازات.
  • سنقوم هنا بتكوين بعض الخصائص في Hive للاتصال بقاعدة بيانات MySQL.

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

من لقطة الشاشة أعلاه، نلاحظ ما يليwing. نحن هنا نحدد 4 خصائص قد تكون ضرورية لإنشاء MYSQL كمخزن Meta فيها خلية النحل

هذه كالتالي:

  1. هذه الخاصية مخصصة لغرض الاتصال بعنوان URL. نحن هنا نحدد ConnectionURL في هذه الخاصية. إنه بمثابة اتصال JDBC ويمثل موقع metastore الخاص به أيضًا
  2. هذه الخاصية مخصصة لاسم برنامج تشغيل الاتصال. هنا mysql.jdbc.Driver هي القيمة المحترمة التي يجب أن نذكرها في علامة القيمة
  3. تستخدم هذه الخاصية لتحديد اسم مستخدم الاتصال. في هذا، قمنا بتعريف "hiveguru" كاسم مستخدم
  4. تستخدم هذه الخاصية لذكر كلمة مرور الاتصال. في هذا، قمنا بتعريف كلمة المرور على أنها كلمة مرور المستخدم.

بمجرد وضع الخصائص في الخلية –site.xml، يتعين علينا حفظ الملف يدويًا (Ctrl+S) وإغلاقه. بعد إغلاق هذا الملف، علينا إنشاء جدول Hive والتحقق من الجدول details في تخزين MySQL.

ضع هذا الكود في hive-site.xml

خلية-site.xml

<configuration>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value>
		<description>metadata is stored in a MySQL server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
		<description>MySQL JDBC driver class</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>hiveuser</value>
		<description>user name for connecting to mysql server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>hivepassword</value>
		<description>password for connecting to mysql server</description>
	</property>
</configuration>

الخطوة 7) إنشاء الجدول
قم بإنشاء جدول "guru99" في الخلية.

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

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

  • إنشاء اسم الجدول "guru99" مع اسمي عمودين
  • تم ذكر أسماء الأعمدة مع نوع بياناتها حيث أن أحدهما عدد صحيح والآخر من نوع السلسلة

في الخطوة التالية، سوف نتحقق مما إذا كان تم تخزينه في MySql أم لا

الخطوة 8) أدخل في وضع MySql Shell

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

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

  • أولاً علينا استخدام قاعدة البيانات كـ "استخدام metastore"
  • بمجرد اختيار متجر التعريف، يمكننا التحقق من الجداول الموجودة فيه باستخدام أمر "إظهار" الجداول كما هو موضح في لقطة الشاشة
  • مهما كانت الجداول التي تم إنشاؤها في Hive، فإن البيانات الوصفية المطابقة لتلك الجداول مخزنة ضمن TBLS في قاعدة بيانات MySQL.
  • يتم إنشاء "جدول Guur99" في Hive، لذلك يتم تخزين البيانات التعريفية المقابلة في MySQL ضمن TBLS.

الخطوة 9) أدخل تحديد * من TBLS
التحقق مما إذا كان الجدول الذي تم إنشاؤه يقدم MySQL أم لا

تثبيت وتكوين Hive Metastore على قاعدة بيانات MySQL

من خلال إدخال تحديد * من TBLS، سيتم عرض الجداول التي أنشأناها في وضع Hive Shell

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

  • اسم الجدول "guru99" الذي تم إنشاؤه هو الخلية التي يمكن عرضها فيها MySQL وضع الصدفة
  • بجانب ذلك، سيوفر أيضًا معلومات مثل وقت إنشاء الجدول ووقت الوصول وخصائص أخرى كما هو موضح في لقطة الشاشة أعلاه.