تشرح البنية التالية تدفق تقديم الاستعلام إلى الخلية.
عميل الخلية
تسمح Hive بكتابة التطبيقات بلغات مختلفة، بما في ذلك Java وPython وC++. يدعم أنواع مختلفة من العملاء مثل:-
- Thrift Server - عبارة عن نظام أساسي لموفر الخدمة متعدد اللغات يخدم الطلب من جميع لغات البرمجة التي تدعم Thrift.
- برنامج تشغيل JDBC - يُستخدم لإنشاء اتصال بين تطبيقات الخلية وJava. برنامج تشغيل JDBC موجود في الفصل org.Apache.hadoop.hive.jdbc.HiveDriver.
- برنامج تشغيل ODBC - يسمح للتطبيقات التي تدعم بروتوكول ODBC بالاتصال بـ Hive.
خدمات الخلية
وفيما يلي الخدمات التي تقدمها هايف:-
- Hive CLI - Hive CLI (واجهة سطر الأوامر) عبارة عن غلاف يمكننا من خلاله تنفيذ استعلامات وأوامر Hive.
- واجهة مستخدم Hive Web - تعد واجهة مستخدم Hive Web مجرد بديل لـ Hive CLI. وهو يوفر واجهة مستخدم رسومية قائمة على الويب لتنفيذ استعلامات وأوامر Hive.
- Hive MetaStore - هو مستودع مركزي يقوم بتخزين كافة المعلومات الهيكلية للجداول والأقسام المختلفة في المستودع. ويتضمن أيضًا البيانات التعريفية للعمود ومعلومات نوعه والمتسلسلات وإلغاء التسلسل المستخدمة لقراءة البيانات وكتابتها وملفات HDFS المقابلة حيث يتم تخزين البيانات.
- خادم الخلية - يشار إليه باسم خادم Apache Thrift Server. فهو يقبل الطلب من عملاء مختلفين ويقدمه إلى Hive Driver.
- Hive Driver - يتلقى استعلامات من مصادر مختلفة مثل web UI وCLI وThrift وJDBC/ODBC driver. يقوم بنقل الاستعلامات إلى المترجم.
- Hive Compiler - الغرض من المترجم هو تحليل الاستعلام وإجراء التحليل الدلالي على كتل الاستعلام والتعبيرات المختلفة. يقوم بتحويل عبارات HiveQL إلى وظائف MapReduce.
- محرك تنفيذ الخلية - يقوم المُحسِّن بإنشاء الخطة المنطقية في شكل DAG لمهام تقليل الخريطة ومهام HDFS. في النهاية، يقوم محرك التنفيذ بتنفيذ المهام الواردة حسب ترتيب تبعياتها.