الغوص العميق في الخنزير



منشور المدونة هذا هو الغوص العميق في Pig ووظائفه. ستجد عرضًا توضيحيًا لكيفية العمل على Hadoop باستخدام Pig دون الاعتماد على Java.

الانحدار اللوجستي في كود بيثون

أحد أكبر الأسباب التي أدت إلى زيادة شعبية Hadoop في الآونة الأخيرة هو حقيقة أن ميزات مثل Pig and Hive تعمل فوقها مما يسمح لغير المبرمجين بوظائف كانت حصرية لمبرمجي Java في السابق. كانت هذه الميزات نتيجة للطلب المتزايد على محترفي Hadoop. الميزات الأخرى التي يستخدمها محترفو Hadoop من خلفيات غير جافا هي Flume و Sqoop و HBase و Oozie.





لفهم سبب عدم حاجتك إلى Java لتعلم Hadoop ، تحقق من ذلك هذه المدونة .

1Pig التاريخ



دعونا نفهم كيفية عمل هذه الميزات.

نعلم جميعًا أن المعرفة البرمجية ضرورية لكتابة أكواد MapReduce. ولكن ماذا لو كان لديّ أداة يمكنها عمل الترميز إذا كنت سأقدم التفاصيل فقط؟ هذا هو المكان الذي يعرض فيه Pig قوته العضلية. يستخدم Pig نظامًا أساسيًا يسمى Pig Latin يقوم بتجريد البرمجة من لغة Java MapReduce إلى تدوين يجعل برمجة MapReduce عالية المستوى ، على غرار SQL لأنظمة RDBMS. يتم تحويل الرموز المكتوبة في Pig Latin MapReduce تلقائيًا إلى وظائف MapReduce المكافئة. أليس هذا رائعًا؟ حقيقة أخرى مثيرة للعقل هي أن هناك حاجة إلى 10 خطوط فقط من Pig لتحل محل 200 سطر من Java.



10 سطور من Pig = 200 سطر من Java

هذا لا يعني فقط أن المحترفين الذين لا يستخدمون Java يستخدمون Hadoop ، بل يشهد أيضًا على الحقيقة الأساسية المتمثلة في استخدام Pig بواسطة عدد متساوٍ من المطورين التقنيين.

بالإضافة إلى ذلك ، إذا كنت ترغب في كتابة كود MapReduce الخاص بك ، فيمكنك القيام بذلك بأي من اللغات مثل Perl أو Python أو Ruby أو C. بعض العمليات الأساسية التي يمكننا إجراؤها على أي مجموعة بيانات باستخدام Pig هي التجميع والانضمام والتصفية والفرز . يمكن إجراء هذه العمليات على بيانات منظمة وغير منظمة وأيضًا شبه منظمة. إنها توفر طريقة مخصصة لإنشاء وظائف MapReduce وتنفيذها على مجموعات بيانات كبيرة جدًا.

بعد ذلك ، دعونا نفهم خلية النحل. إنه إطار تخزين بيانات مفتوح المصدر على نطاق بيتا بايت يعتمد على Hadoop لتلخيص البيانات والاستعلام والتحليل. يوفر Hive واجهة تشبه SQL لـ Hadoop. يمكنك استخدام Hive لقراءة الملفات وكتابتها على Hadoop وتشغيل تقاريرك من أداة BI. بعض الوظائف النموذجية لبرنامج Hadoop هي:

اسمحوا لي أن أعرض لك عرضًا توضيحيًا باستخدام Pig على مجموعة بيانات Clickstream
سنستخدم بيانات Clickstream هذه ونجري التحويلات والصلات والتجمعات.

ClickStream عبارة عن سلسلة من النقرات بالماوس يقوم بها المستخدم أثناء الوصول إلى الإنترنت خاصة عند مراقبتها لتقييم اهتمامات الشخص لأغراض التسويق. يتم استخدامه بشكل أساسي من قبل مواقع البيع بالتجزئة عبر الإنترنت مثل Flipkart و Amazon الذين يتتبعون أنشطتك لإنشاء توصيات. تحتوي مجموعة بيانات Clickstream التي استخدمناها على الحقول التالية:

1. نوع اللغة التي يدعمها تطبيق الويب

2. نوع المتصفح

3. نوع الاتصال

4. معرف البلد

5. الطابع الزمني

6. URL

7. حالة المستخدم

8. نوع المستخدم

سيبدو مثل هذا مع الحقول المناسبة.

فيما يلي قائمة بأنواع المستعرضات التي استخدمها العديد من الأشخاص عند تصفح موقع ويب معين. من بين القائمة متصفحات مثل Internet Explorer و Google Chrome و Lynx وما إلى ذلك.

يمكن أن يكون نوع اتصال الإنترنت LAN / Modem / Wifi. انظر الصورة أدناه للحصول على القائمة الكاملة:

في الصورة التالية ، ستجد قائمة البلدان التي اجتذب منها موقع الويب الجمهور إلى جانب معرفاتهم.

بمجرد أن نجمع كل مجموعات البيانات ، يتعين علينا إطلاق Pig’s Grunt shell ، والذي يتم إطلاقه من أجل تشغيل أوامر Pig.

أول شيء يتعين علينا القيام به عند إطلاق Grunt shell هو تحميل بيانات Clickstream في علاقة Pig. العلاقة ليست سوى طاولة. يوجد أدناه الأمر الذي نستخدمه لتحميل ملف مقيم في HDFS على علاقة Pig.

يمكننا التحقق من مخطط العلاقة عن طريق الأمر الذي يصف click_stream.

نحتاج الآن إلى إضافة الملفات المرجعية التي ستحتوي على تفاصيل حول قائمة البلدان بمعرفاتها وأنواع المستعرضات المختلفة إلى جانب معرفاتها.

لدينا الآن ملفان مرجعيان ، لكنهما بحاجة إلى الارتباط لتكوين علاقة.
نقوم بتشغيل أمر connection_ref للإشارة إلى نوع الاتصال.

الآن بعد أن أصبح لدينا اتصال فعال وعلاقة راسخة ، سنعرض لك كيف يمكننا تحويل تلك البيانات.
لكل سجل في Clickstream ، سننشئ سجلًا جديدًا بتنسيق مختلف ، أي البيانات المحولة. سيتضمن التنسيق الجديد حقولًا مثل الطابع الزمني ونوع المستعرض ومعرفات الدول وغير ذلك.

يمكننا إجراء عملية تصفية لتقليص البيانات الضخمة. الأنواع المختلفة من المستخدمين هي المسؤولين أو الضيوف أو الروبوتات. في العرض التوضيحي الخاص بنا ، قمت بتصفية قائمة الضيوف.

إذا كنت تتذكر ، فإن معرف البلد موجود في Clickstream وقمنا بتحميل ملف country_ref يحتوي على أسماء البلدان إلى جانب معرفاتها. يمكننا بالتالي إجراء عملية انضمام بين الملفين ودمج البيانات لاستخلاص رؤى.

إذا انضممنا إلى البيانات ، فيمكننا معرفة البلدان المختلفة من حيث يوجد المستخدمون عن طريق التجميع. بمجرد حصولنا على هذه البيانات ، يمكننا إجراء عملية Count لتحديد عدد المستخدمين من بلد معين.

استخلاص الرؤى من البيانات الضخمة ليس علمًا صارخًا. هذه ليست سوى بعض الميزات العديدة التي قمت بتطبيقها وباستخدام أدوات مثل Hive و Hbase و Oozie و Sqoop و Flume ، هناك كنز من البيانات لم يتم استكشافه بعد. إذاً أولئك منكم الذين يمنعون أنفسكم من تعلم Hadoop ، فقد حان وقت التغيير.

لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات وسنعاود الاتصال بك.

المنشورات ذات الصلة:

4 طرق لاستخدام R و Hadoop معًا

كل شيء عن مطور Cloudera المعتمد لـ Apache Hadoop