Apache Hive هو إطار يتواجد فوق Hadoop للقيام باستعلامات مخصصة على البيانات في Hadoop. يدعم Hive HiveQL ، والذي يشبه SQL ، لكنه لا يدعم الإنشاءات الكاملة لـ SQL.
يقوم Hive بتغطية استعلام HiveQL في برنامج Java MapReduce ثم إرساله إلى نظام Hadoop. يمكن تحقيق نفس النتيجة باستخدام HiveQL و Java MapReduce ، ولكن باستخدام Java MapReduce سيتطلب الكثير من التعليمات البرمجية المراد كتابتها / تصحيحها مقارنة بـ HiveQL. لذلك ، HiveQL يزيد إنتاجية المطور.
لتلخيص ، يوفر Hive ، من خلال لغة HiveQL ، تجريدًا عالي المستوى عبر برمجة Java MapReduce. كما هو الحال مع أي تجريد آخر عالي المستوى ، هناك القليل من الأداء العام باستخدام HiveQL بالمقارنة مع Java MapReduce ، ولكن مجتمع Hive يعمل على تضييق هذه الفجوة لمعظم السيناريوهات الشائعة الاستخدام.
على نفس المنوال ، يوفر Pig تجريدًا بمستوى أعلى عبر MapReduce. يدعم Pig إنشاءات PigLatin ، والتي يتم تحويلها إلى برنامج Java MapReduce ثم يتم إرسالها إلى نظام Hadoop.
بينما HiveQL هي لغة تعريفية مثل SQL ، PigLatin هي لغة تدفق البيانات. يمكن إرسال إخراج بناء PigLatin واحد كمدخلات إلى بناء PigLatin آخر وهكذا.
في وقت ما ، نشرت Cloudera إحصائيات حول شخصية عبء العمل في مجموعة Hadoop نموذجية ويمكن ملاحظة أن وظائف Pig and Hive تشكل جزءًا جيدًا من الوظائف في مجموعة Hadoop. بسبب ارتفاع إنتاجية المطورين ، تختار العديد من الشركات ملخصات ذات مستوى أعلى مثل Pig and Hive. لذلك ، يمكننا أن نراهن أنه سيكون هناك الكثير من فرص العمل حول Hive and Pig بالمقارنة مع تطوير MapReduce.
على الرغم من نشر كتاب Programming Pig في أكتوبر 2011 ، تم نشر كتاب Programming Hive مؤخرًا ، في أكتوبر 2012. بالنسبة لأولئك الذين لديهم خبرة في العمل مع RDBMS ، سيكون البدء باستخدام Hive خيارًا أفضل من البدء في Pig. لاحظ أيضًا أن لغة PigLatin ليس من الصعب جدًا البدء بها.
بالنسبة إلى نظام Hadoop الأساسي ، يكون شفافًا سواء تم تقديم مهمة Java MapReduce أو تم تقديم مهمة MapReduce من خلال Hive و Pig. بسبب الطبيعة الموجهة للدفعة لوظائف MapReduce ، فإن الوظائف المقدمة من خلال Hive و Pig هي أيضًا موجهة للدفعة في الطبيعة.
لمتطلبات الاستجابة في الوقت الحقيقي ، لا تلبي Hive and Pig المتطلبات بسبب الطبيعة الموجهة للدفعة المذكورة سابقًا لوظائف MapReduce. قامت Cloudera بتطوير Impala ، والتي تستند إلى Dremel (منشور من Google) للاستعلامات المخصصة التفاعلية أعلى Hadoop. يدعم Impala استعلامات تشبه SQL ومتوافق مع HiveQL. لذلك ، يجب أن تعمل أي تطبيقات مبنية على أعلى خلية مع الحد الأدنى من التغييرات مع Impala. الفرق الرئيسي بين Hive و Impala هو أنه بينما يتم تحويل HiveQL إلى وظائف Java MapReduce ، فإن Impala لا تغطي استعلام SQL في مهام Java MapReduce.
يجب أن تذهب مع خنزير أو خلية لمتطلبات معينة؟ هذا موضوع لمدونة أخرى.
أعيد نشرها بإذن من برافين سريباتي. يمكن الاطلاع على المقالة الأصلية هنا: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html