Hive هي أداة تحليلات البيانات الضخمة المستخدمة على نطاق واسع في الأعمال التجارية ، وهي مكان رائع للبدء إذا كنت جديدًا على Big Data. يستعرض درس Apache Hive أساسيات Apache Hive ، ولماذا تعتبر الخلية ضرورية وميزاتها وكل شيء آخر يجب أن تعرفه.
دعونا نفهم أولاً إطار عمل Hadoop الذي تم بناء Apache Hive عليه.
اباتشي هادوب
Apache Hadoop هو برنامج مجاني و المصدر المفتوح منصة لتخزين ومعالجة مجموعات البيانات الكبيرة التي تتراوح في الحجم من الجيجابايت إلى البيتابايت. يسمح Hadoop بتجميع العديد من أجهزة الكمبيوتر لتحليل مجموعات البيانات الهائلة بشكل متوازٍ ، بدلاً من طلب جهاز كمبيوتر واحد كبير لتخزين البيانات وتحليلها.
يعد MapReduce و Hadoop Distributed File System عنصرين من المكونات:
- مابريديوس - MapReduce هي تقنية برمجة متوازية للتعامل مع كميات ضخمة من البيانات المنظمة وشبه المهيكلة وغير المهيكلة على مجموعات الأجهزة السلعية.
- HDFS - HDFS (نظام الملفات الموزعة Hadoop) هو مكون إطار عمل Hadoop يقوم بتخزين البيانات ومعالجتها. إنه نظام ملفات متسامح يعمل على الأجهزة القياسية
يتم استخدام مشاريع فرعية مختلفة (أدوات) في نظام Hadoop البيئي ، بما في ذلك Sqoop و Pig و Hive ، لمساعدة وحدات Hadoop.
- خلية النحل - الخلية عبارة عن إطار عمل لكتابة البرامج النصية على غرار SQL التي تقوم بإجراء حسابات MapReduce.
- خنزير - Pig هي لغة برمجة إجرائية يمكن استخدامها لإنشاء برنامج نصي لعمليات MapReduce.
- سكوب - Sqoop هي أداة لاستيراد وتصدير البيانات بين HDFS و RDBMS.
ما هي تفاصيل اباتشي خلية?
Apache Hive هو مصدر مفتوح مستودع البيانات برنامج لقراءة وكتابة وإدارة مجموعات البيانات الضخمة المخزنة مباشرة في نظام الملفات الموزعة Apache Hadoop (HDFS) أو أنظمة تخزين البيانات الأخرى مثل Apache HBase.
قد يستخدم مطورو SQL Hive لإنشاء عبارات Hive Query Language (HQL) لاستعلام وتحليل البيانات التي يمكن مقارنتها بعبارات SQL العادية. تم إنشاؤه لجعل برمجة MapReduce أسهل من خلال التخلص من الحاجة إلى تعلم وكتابة كود Java طويل. بدلاً من ذلك ، يمكنك كتابة استفساراتك في HQL ، وسيقوم Hive ببناء الخريطة وتقليل الوظائف نيابةً عنك.
أصبحت واجهة Apache Hive التي تشبه SQL هي المعيار الذهبي لإجراء عمليات بحث مخصصة وتلخيص وتحليل بيانات Hadoop. عندما يتم تضمينها في السحابة شبكات الحوسبة، هذا الحل فعال من حيث التكلفة وقابل للتطوير بشكل خاص ، ولهذا السبب تستمر العديد من الشركات ، بما في ذلك Netflix و Amazon ، في تطوير Apache Hive وتحسينها.
تاريخنا
خلال فترة وجودهما في Facebook ، شاركت Joydeep Sen Sarma و Ashish Sooo في إنشاء Apache Hive. لقد أدرك كلاهما أنه لتحقيق أقصى استفادة من Hadoop ، سيتعين عليهما إنشاء بعض مهام Java Map-Reduce المعقدة نوعًا ما. لقد أدركوا أنهم لن يكونوا قادرين على تعليم فرق الهندسة والتحليل التي تتوسع بسرعة حول المهارات التي يحتاجونها للاستفادة من Hadoop عبر الشركة. استخدم المهندسون والمحللون بشكل متكرر SQL كواجهة مستخدم.
في حين أن SQL يمكن أن تلبي غالبية احتياجات التحليلات ، فإن المطورين يعتزمون أيضًا دمج قابلية برمجة Hadoop. نشأت Apache Hive من هذين الهدفين: لغة تعريفية قائمة على SQL والتي مكنت المطورين أيضًا من جلب البرامج النصية والبرامج الخاصة بهم عندما لا تكون SQL كافية.
تم تطويره أيضًا للاحتفاظ بالبيانات الوصفية المركزية (المستندة إلى Hadoop) حول جميع مجموعات البيانات في الشركة لتسهيل إنشاء المؤسسات التي تعتمد على البيانات.
كيف يعمل Apache Hive؟
باختصار ، يقوم Apache Hive بتحويل برنامج إدخال مكتوب بلغة HiveQL (مثل SQL) إلى مهمة واحدة أو أكثر من مهام Java MapReduce أو Tez أو Spark. (جميع محركات التنفيذ هذه متوافقة مع Hadoop YARN.) بعد ذلك ، يقوم Apache Hive بترتيب البيانات في جداول لـ Hadoop Distributed File System HDFS) ويقوم بتنفيذ المهام على مجموعة للحصول على إجابة.
البيانات
يتم ترتيب جداول Apache Hive بنفس الطريقة التي يتم بها تنظيم الجداول في قاعدة البيانات العلائقية ، حيث تتراوح وحدات البيانات في الحجم من الأكبر إلى الأصغر. تتكون قواعد البيانات من جداول مقسمة إلى أقسام ، والتي يتم تقسيمها أيضًا إلى مجموعات. يتم استخدام HiveQL (لغة استعلام Hive) للوصول إلى البيانات ، والتي يمكن تغييرها أو إلحاقها. يتم تسلسل بيانات الجدول داخل كل قاعدة بيانات ، ولكل جدول دليل HDFS الخاص به.
معمار
الآن سنتحدث عن أهم جانب في Hive Architecture. مكونات Apache Hive هي كما يلي:
ميتاستور - يتتبع المعلومات حول كل جدول ، مثل هيكله وموقعه. يتم أيضًا تضمين البيانات الوصفية للقسم في الخلية. يتيح ذلك للسائق تتبع التقدم المحرز في مجموعات البيانات المختلفة المنتشرة عبر الكتلة. يتم تخزين البيانات بتنسيق RDBMS تقليدي. تعد البيانات الوصفية للخلية مهمة للغاية للسائق للحفاظ على تتبع البيانات. يقوم خادم النسخ الاحتياطي بتكرار البيانات بشكل منتظم بحيث يمكن استعادتها في حالة فقد البيانات.
سائق - يتم استلام بيانات HiveQL من قبل السائق ، والذي يعمل كوحدة تحكم. من خلال إنشاء الجلسات ، يبدأ السائق في تنفيذ البيان. إنه يتتبع عمر المدير التنفيذي والتقدم. أثناء تنفيذ بيان HiveQL ، يحفظ المشغل البيانات الوصفية المطلوبة. كما أنها تعمل كنقطة تجميع لنتيجة البيانات أو الاستعلام بعد عملية التقليل.
مترجم - يقوم بتنفيذ تجميع استعلام HiveQL. يتم الآن تحويل الاستعلام إلى خطة تنفيذ. يتم سرد المهام في الخطة. يتضمن أيضًا الخطوات التي يجب أن يتخذها MapReduce للحصول على النتيجة المترجمة بواسطة الاستعلام. يتم تحويل الاستعلام إلى شجرة بناء جملة خلاصة بواسطة مترجم Hive (AST). يحول AST إلى رسم بياني دوري مباشر بعد التحقق من التوافق وأخطاء وقت الترجمة (DAG).
محسن - يحسن DAG عن طريق إجراء تغييرات مختلفة على خطة التنفيذ. فهو يجمع بين عمليات التحويل لتحسين الكفاءة ، مثل تحويل خط أنابيب للوصلات إلى صلة واحدة. لتحسين السرعة ، قد يقسم المُحسِّن الأنشطة ، مثل تطبيق تحويل على البيانات قبل إجراء عملية تقليل.
المنفذ - يقوم المنفذ بتشغيل المهام عند الانتهاء من التجميع والتحسين. يتم تحديد الوظائف من قبل المنفذ.
CLI و UI و Thrift Server - واجهة سطر الأوامر (CLI) هي واجهة مستخدم تتيح لمستخدم خارجي الاتصال بـ Hive. يسمح خادم التوفير في Hive ، على غرار بروتوكولات JDBC أو ODBC ، للعملاء الخارجيين بالتواصل مع Hive عبر الشبكة.
حماية
تم دمج Apache Hive مع أمان Hadoop ، والذي يستخدم Kerberos للمصادقة المتبادلة بين خادم العميل. يفرض HDFS أذونات للملفات التي تم إنشاؤها حديثًا في Apache Hive ، مما يسمح لك بالموافقة عليها من قبل المستخدم والمجموعة والآخرين.
الملامح الرئيسية
- يدعم Hive الجداول الخارجية ، والتي تتيح لك معالجة البيانات دون تخزينها في HDFS.
- كما أنه يتيح تجزئة البيانات على مستوى الجدول لزيادة السرعة.
- يلبي Apache Hive بشكل ممتاز احتياجات واجهة Hadoop منخفضة المستوى.
- Hive يجعل تلخيص البيانات والاستعلام والتحليل أسهل.
- لا تتطلب HiveQL أي مهارات برمجية ؛ يكفي فهم بسيط لاستعلامات SQL.
- يمكننا أيضًا استخدام Hive لإجراء استعلامات مخصصة لتحليل البيانات.
- إنه قابل للتطوير ومألوف وقابل للتكيف.
- لا تتطلب HiveQL أي مهارات برمجية ؛ يكفي فهم بسيط لاستعلامات SQL.
المميزات
يسمح Apache Hive بتقارير نهاية اليوم ، وتقييمات المعاملات اليومية ، وعمليات البحث المخصصة ، وتحليل البيانات. توفر الرؤى الشاملة التي تقدمها Apache Hive مزايا تنافسية كبيرة وتسهل عليك الاستجابة لمتطلبات السوق.
فيما يلي بعض فوائد توفر مثل هذه المعلومات بسهولة:
- سهولة الاستخدام - باستخدام لغة شبيهة بلغة SQL ، فإن الاستعلام عن البيانات سهل الفهم.
- إدخال البيانات المعجل - نظرًا لأن Apache Hive يقرأ المخطط بدون التحقق من نوع الجدول أو تعريف المخطط ، فلا يلزم قراءة البيانات وتحليلها وتسلسلها إلى قرص بالتنسيق الداخلي لقاعدة البيانات. في المقابل ، في قاعدة البيانات التقليدية ، يجب التحقق من صحة البيانات في كل مرة يتم إضافتها.
- قابلية التوسع الفائقة والمرونة والفعالية من حيث التكلفة - نظرًا لأنه يتم تخزين البيانات في HDFS ، يمكن أن تحتوي Apache Hive على 100 بيتابايت من البيانات ، مما يجعلها خيارًا أكثر قابلية للتوسع من قاعدة البيانات النموذجية. تتيح Apache Hive ، باعتبارها خدمة Hadoop قائمة على السحابة ، للعملاء إمكانية تدوير الخوادم الافتراضية لأعلى ولأسفل بسرعة لتلبية أعباء العمل المتغيرة.
- قدرة عمل واسعة - قد تعالج مجموعات البيانات الكبيرة ما يصل إلى 100,000 استفسار في الساعة.
القيود
- بشكل عام ، تتمتع استعلامات Apache Hive بوقت استجابة مرتفع جدًا.
- دعم الاستعلام الفرعي محدود.
- لا تتوفر الاستعلامات في الوقت الفعلي والتغييرات على مستوى الصف في Apache Hive.
- لا يوجد دعم لوجهات النظر المحققة.
- في الخلية ، لا يتم دعم إجراءات التحديث والحذف.
- غير مخصص لـ OLTP (عملية انتقالية عبر الإنترنت).
الشروع في العمل مع Apache Hive
Apache Hive هو شريك Hadoop قوي يبسط ويسهل سير عملك. لتحقيق أقصى استفادة من Apache Hive ، يعد التكامل السلس أمرًا ضروريًا. الخطوة الأولى هي الذهاب إلى موقع الكتروني.
1. خلية التثبيت من الإصدار المستقر
ابدأ بتنزيل أحدث إصدار ثابت من Hive من إحدى مرايا تنزيل Apache (انظر إصدارات الخلية). يجب بعد ذلك تفريغ كرة القطران. سيؤدي هذا إلى إنشاء مجلد فرعي يسمى hive-xyz (حيث xyz هو رقم الإصدار):
اضبط متغير البيئة HIVE_HOME للإشارة إلى دليل التثبيت:
أخيرًا ، أضف $ HIVE_HOME / bin إلى ملف PATH
:
2. تشغيل الخلية
يستخدم Hive Hadoop ، لذلك:
- يجب أن يكون لديك Hadoop في طريقك أو
3. عملية DLL
إنشاء جدول الخلية
يولد جدولًا يسمى وخزات بعمودين ، أولهما عدد صحيح والثاني عبارة عن سلسلة.
تصفح من خلال الجداول
سرد جميع الجداول
تعديل الجداول وإسقاطها
يمكن تغيير أسماء الجداول وإضافة الأعمدة أو استبدالها:
تجدر الإشارة إلى أن REPLACE COLUMNS يستبدل جميع الأعمدة الموجودة مع تغيير بنية الجدول فقط وليس البيانات. يجب استخدام SerDe أصلي في الجدول. يمكن أيضًا استخدام REPLACE COLUMNS لإزالة الأعمدة من مخطط الجدول:
اسقاط الجداول
هناك العديد من العمليات والميزات الإضافية في Apache Hive والتي قد تتعرف عليها من خلال زيارة الموقع الرسمي.
وفي الختام
تعريف الخلية هو واجهة برنامج بيانات للاستعلام عن مجموعات البيانات الضخمة التي تم إنشاؤها فوق Apache Hadoop وتحليلها. يختاره المحترفون على البرامج والأدوات والبرامج الأخرى نظرًا لأنه مصمم بشكل أساسي لبيانات Hive الشاملة وسهل الاستخدام.
آمل أن يساعدك هذا البرنامج التعليمي على بدء استخدام Apache Hive وجعل سير العمل أكثر كفاءة. اسمحوا لنا أن نعرف في التعليقات.
اترك تعليق