ما هو Hive in Hadoop؟ التاريخ ومكوناته
نشرت: 2021-10-07Apache Hive هو نظام تخزين مفتوح المصدر مبني على قمة Hadoop. يستخدم Hive للاستعلام عن مجموعات البيانات الضخمة المخزنة في Hadoop وتحليلها. إنه يعمل من خلال معالجة البيانات المهيكلة وشبه المنظمة.
من خلال هذه المقالة ، دعنا نتحدث بالتفصيل عن Hive in Hadoop ، وتاريخها ، وأهميتها ، وهندسة الخلية ، وبعض الميزات الرئيسية ، وبعض القيود ، والمزيد!
جدول المحتويات
ما هي الخلية؟
Apache Hive هو ببساطة برنامج مستودع بيانات تم إنشاؤه باستخدام Hadoop كقاعدة. قبل Apache Hive ، كان على مهندسي البيانات الضخمة كتابة مهام معقدة لتقليل الخرائط لأداء مهام الاستعلام. مع Hive ، من ناحية أخرى ، تم تقليل الأشياء بشكل كبير حيث يحتاج المهندسون الآن فقط إلى معرفة SQL.
يعمل Hive على لغة تُعرف باسم HiveQL (على غرار SQL) ، مما يسهل على المهندسين الذين لديهم معرفة عملية بـ SQL. تقوم HiveQL تلقائيًا بترجمة استعلامات SQL الخاصة بك إلى مهام لتقليل الخريطة يمكن لبرنامج Hadoop تنفيذها.
عند القيام بذلك ، يقدم Apache مفهوم التجريد في عمل Hadoop ويسمح لخبراء البيانات بالتعامل مع مجموعات البيانات المعقدة دون تعلم لغة برمجة Java للعمل مع Hive. يعمل Apache Hive على محطة العمل الخاصة بك ويقوم بتحويل استعلامات SQL إلى مهام لتقليل الخريطة ليتم تنفيذها على مجموعة Hadoop. يصنف Hive جميع البيانات الخاصة بك في جداول ، وبالتالي توفير بنية لجميع البيانات الموجودة في HDFS.
تاريخ خلية أباتشي
قدم فريق البنية التحتية للبيانات Apache Hive على Facebook. إنها إحدى التقنيات التي يتم استخدامها بشكل استباقي على Facebook لأغراض داخلية عديدة. على مر السنين ، قامت Apache Hive بتشغيل آلاف الوظائف في المجموعة مع مئات المستخدمين لمجموعة من التطبيقات.
تخزن كتلة Hive-Hadoop في Facebook أكثر من 3 بيتابايت من البيانات الأولية. يمكنه تحميل 15 تيرابايت من البيانات في الوقت الفعلي يوميًا. من هناك ، نمت Apache Hive أكثر في حالات استخدامها ، واليوم ، يتم استخدامها من قبل عمالقة مثل IBM و Yahoo و Amazon و FINRA و Netflix والمزيد.
احصل على شهادة علوم البيانات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
لماذا الحاجة إلى Apache Hive؟
قبل طرح Apache Hive ، واجه Facebook العديد من التحديات مثل الحجم المتزايد باستمرار للبيانات المطلوب تحليلها والتناقض التام في مجموعة البيانات الكبيرة هذه. جعلت هذه التحديات من الصعب على Facebook التعامل مع مهامه كثيفة البيانات بسلاسة. لم تكن الهياكل التقليدية القائمة على RDBMS كافية للتحكم في الضغط المتزايد باستمرار.
قدم Facebook لأول مرة خريطة مخفضة للتغلب على هذه التحديات ولكن بعد ذلك قام بتبسيطها بشكل أكبر من خلال تقديم Apache Hive ، والذي يعمل على HiveQL.
في النهاية ، ظهر Apache Hive باعتباره المنقذ الذي تمس الحاجة إليه وساعد Facebook في التغلب على التحديات المختلفة. الآن ، باستخدام Apache Hive ، تمكن Facebook من تحقيق ما يلي:
- تطور ومرونة المخطط.
- تقسيم الجداول وتجميعها.
- تحديد جداول Hive مباشرة في HDFS.
- توافر برامج تشغيل ODBC / JDBC.
بشكل عام ، ساعد Apache Hive المطورين على توفير الكثير من الوقت الذي كان من شأنه أن يخصص لكتابة وظائف معقدة لتقليل الخرائط. يجلب Hive البساطة إلى تلخيص البيانات وتحليلها والاستعلام عنها واستكشافها.
نظرًا لكونه يعتمد فقط على SQL ، فإن Apache Hive هو إطار عمل سريع وقابل للتطوير وقابل للتوسيع بدرجة كبيرة. إذا كنت تفهم الاستعلام الأساسي باستخدام SQL ، فستتمكن من العمل مع Apache Hive في لمح البصر! كما يوفر الوصول إلى الملفات في مخازن بيانات مختلفة مثل HBase و HDFS.
هندسة خلية اباتشي
الآن بعد أن فهمت أهمية وظهور Apache Hive ، فلنلقِ نظرة على المكونات الرئيسية لـ Apache Hive. تتضمن بنية Apache Hive ما يلي:
1. Metastore
يستخدم هذا لتخزين البيانات الوصفية لكل جدول. تتكون البيانات الوصفية بشكل عام من الموقع والمخطط. يتكون Metastore أيضًا من البيانات الوصفية للقسم ، والتي تساعد المهندسين على تتبع تقدم مجموعات البيانات المختلفة التي تم توزيعها على المجموعات. البيانات المخزنة هنا بتنسيق RDBMS التقليدي.
2. سائق
برنامج التشغيل في Apache Hive يشبه وحدة التحكم المسؤولة عن تلقي عبارات HiveQL. ثم يبدأ تنفيذ هذه العبارات من خلال إنشاء جلسات مختلفة. السائق مسؤول أيضًا عن مراقبة وإدارة دورة حياة التنفيذ والتقدم المحرز على طول الطريق. يحتفظ السائقون بجميع البيانات الوصفية المهمة التي يتم إنشاؤها عند تنفيذ عبارة HiveQL. تعمل أيضًا كنقطة تجميع للبيانات التي تم الحصول عليها بعد عملية تقليل الخريطة.
3. المترجم
يستخدم المترجم لتجميع استعلامات HiveQL. يقوم بتحويل الاستعلامات التي ينشئها المستخدم إلى خطة تنفيذ مضمونة تحتوي على جميع المهام التي يجب القيام بها. تتضمن الخطة أيضًا جميع الخطوات والإجراءات المطلوبة لاتباع map-low للحصول على المخرجات المطلوبة. يقوم برنامج التحويل البرمجي Hive بتحويل استعلام إدخال المستخدم إلى AST (شجرة بناء الجملة المجردة) للتحقق من أخطاء وقت الترجمة أو مشكلات التوافق. يتم تحويل AST إلى رسم بياني دوري مباشر (DAG) عند عدم مواجهة أي من المشكلات.
4. محسن
يقوم المُحسِّن بجميع التحولات في خطة التنفيذ المطلوبة للوصول إلى DAG المُحسَّن. يقوم بذلك عن طريق تجميع كل التحويلات معًا ، مثل تحويل مجموعة من الصلات الفردية إلى صلات واحدة - لتحسين الأداء. بالإضافة إلى ذلك ، يمكن للمحسن تقسيم المهام المختلفة عن طريق تطبيق تحويل على البيانات قبل تنفيذ العملية المخفضة - مرة أخرى ، لتحسين الأداء العام.
5. المنفذ -
بمجرد قيام Apache Hive بمهام التجميع والتحسين ، يقوم المنفذ بتنفيذ عمليات التنفيذ النهائية. إنه يعتني بتخطيط المهام وإكمالها.
6. CLI و UI وخادم التوفير
تُستخدم واجهة سطر الأوامر (CLI) لتزويد المستخدم الخارجي بواجهة مستخدم للتفاعل مع الميزات المختلفة لـ Apache Hive. CLI هو ما يشكل واجهة مستخدم Hive للمستخدمين النهائيين. من ناحية أخرى ، يسمح خادم Thrift للعملاء الخارجيين بالتفاعل مع Hive عبر شبكة ، على غرار بروتوكولات ODBC أو JDBC.
الميزات الأساسية للخلية Apache
كما ذكرنا سابقًا ، أحدثت Apache Hive تغييرًا تمس الحاجة إليه في طريقة عمل المهندسين في وظائف البيانات. لم تعد Java هي لغة الانتقال ، ويمكن للمطورين العمل فقط باستخدام SQL. بصرف النظر عن ذلك ، هناك العديد من الميزات الأساسية الأخرى لـ Hive أيضًا ، مثل:
- تقدم Apache Hive تلخيص البيانات والتحليل والاستعلام بطريقة أكثر بساطة.
- يدعم Hive الجداول الداخلية والخارجية ، مما يجعل من الممكن العمل مع البيانات الخارجية دون إحضارها إلى H DFS.
- يعمل Apache Hive بشكل جيد مع متطلبات واجهة المستوى المنخفض لبرنامج Hadoop.
- من خلال دعم تقسيم البيانات على مستوى الجداول ، تساعد Apache Hive على تحسين الأداء العام.
- يحتوي على مُحسِّن قائم على القواعد لتحسين الخطط المنطقية المختلفة.
- إنه يعمل على HiveQL ، وهي لغة مشابهة لـ SQL ، مما يعني أن المطورين لا يحتاجون إلى إتقان لغة أخرى للعمل مع مجموعات البيانات الكبيرة.
- الاستعلام في Hive بسيط للغاية ، مشابه لـ SQL.
- يمكننا أيضًا تشغيل استعلامات مخصصة لتحليل البيانات باستخدام الخلية.
حدود Apache Hive
نظرًا لأن عالم علوم البيانات جديد نسبيًا ومتطور باستمرار ، فحتى أفضل الأدوات المتاحة في السوق بها بعض القيود. حل هذه القيود هو ما سيوفر لنا أفضل الأدوات التالية. فيما يلي بعض القيود على العمل مع Apache Hive لتتذكرها:
- لا تقدم Hive تحديثات على مستوى الصف واستعلامًا في الوقت الفعلي.
- توفر Apache Hive زمن انتقال مقبولاً للتفاعل.
- إنه ليس الأفضل للعمل مع المعاملات عبر الإنترنت.
- زمن الوصول في استعلامات Hive بشكل عام أعلى من المتوسط.
ختاما
أحدثت Apache Hive تحسينات جذرية ومذهلة في طريقة عمل مهندسي البيانات على مجموعات البيانات الكبيرة. علاوة على ذلك ، من خلال التخلص تمامًا من الحاجة إلى لغة برمجة Java ، جلب Apache Hive راحة مألوفة لمهندسي البيانات. اليوم ، يمكنك العمل بسلاسة مع Apache Hive إذا كانت لديك المعرفة الأساسية باستعلام SQL.
كما ذكرنا سابقًا ، يعد علم البيانات مجالًا ديناميكيًا ودائم التطور. نحن على يقين من أن السنوات القادمة ستقدم أدوات وأطر عمل جديدة لتبسيط الأمور بشكل أكبر. إذا كنت من المتحمسين للبيانات وتتطلع إلى تعلم جميع أدوات تجارة Data Science ، فهذا هو أفضل وقت لاستخدام أدوات البيانات الضخمة مثل Hive.
في upGrad ، قمنا بتوجيه وإرشاد الطلاب من جميع أنحاء العالم وساعدنا الأشخاص من خلفيات مختلفة على تأسيس موطئ قدم راسخ في صناعة علوم البيانات. يضمن مدرسونا الخبراء ، وشراكات الصناعة ، والمساعدة في التوظيف ، وشبكة الخريجين القوية أنك لست وحدك في هذه الرحلة. لذا تحقق من برنامجنا التنفيذي PG في علوم البيانات ، وقم بتسجيل نفسك في البرنامج المناسب لك - سنهتم بالباقي!
Apache Hive هو إطار عمل أو نظام يستخدم للتخزين والاستعلام وتحليل مجموعات كبيرة من البيانات. تم تقديم Apache Hive بواسطة Facebook لتحسين عملياته الداخلية ومنذ ذلك الحين أصبح جزءًا لا يتجزأ من طيف علوم البيانات. رقم! ستكون المعرفة العملية بـ SQL كافية لتبدأ مع Apache Hive! تُستخدم Apache Hive بشكل عام لـ OLAP (معالجة الدُفعات) ولا تُستخدم عمومًا لـ OLTP بسبب العمليات في الوقت الفعلي على قاعدة البيانات.ما هو Apache Hive في Hadoop؟
هل أحتاج إلى تعلم أي لغة معينة للعمل مع Apache Hive في Hadoop؟
ما الذي لا يستخدم Apache Hive؟