سؤال

لقد كنت أبحث في MAPREDUCE لفترة من الوقت، ويبدو أنها طريقة جيدة للغاية لتنفيذ الحوسبة الموزعة للمشكلة. قرأت الكثير من الأوراق والمقالات حول هذا الموضوع، وتثبيت Hadoop على صفيف من الأجهزة الافتراضية، وفعلت بعض الاختبارات المثيرة للاهتمام للغاية. أعتقد حقا أنني أفهم الخريطة وتقليل الخطوات.

ولكن هنا هي مشكلتي : لا يمكنني معرفة كيفية المساعدة في تحليل سجلات خادم HTTP.

فهمي هو أن الشركات الكبيرة (Facebook على سبيل المثال) استخدم Map Reduce لغرض حوسبة سجلات HTTP الخاصة بهم من أجل تسريع عملية استخراج إحصاءات الجمهور من هذه. تعمل الشركة التي أعمل بها، في حين أن أصغر من Facebook، لديها حجم كبير من سجلات الويب لحساب كل يوم (100GO ينمو بين 5 و 10 في المائة كل شهر). الآن نحن نعالج هذه السجلات على خادم واحد، ويعمل على ما يرام. لكن توزيع وظائف الحوسبة يتبادر على الفور إلى الذهن كحسن قريبا مفيدا.

فيما يلي الأسئلة التي لا يمكنني الإجابة عليها الآن، ستكون هناك تقدير كبير أي مساعدة:

  • هل يمكن تطبيق مفهوم MAPREDUCE حقا على تحليل Weblogs؟
  • هل Mapreduce الطريقة الأكثر ذكاء للقيام بذلك؟
  • كيف يمكنك تقسيم ملفات سجل الويب بين مثيلات الحوسبة المختلفة؟

شكرا لك.
نيكولاس.

هل كانت مفيدة؟

المحلول

هل يمكن تطبيق مفهوم MAPREDUCE حقا على تحليل Weblogs؟

نعم.

يمكنك تقسيم سجل تسجيل الدخول الخاص بك إلى قطع القول من 10،000 أو 1،000،000 خطوط (كل ما هو جزء جيد لنوعك من LogFile الخاص بك - لأباش تسجيلات LogFiles، سأذهب إلى رقم أكبر)، إطعامهم إلى بعض الأفخانات التي من شأنها استخراج شيء محدد ( مثل المتصفح، عنوان IP، ...، اسم المستخدم، ...) من كل خط سجل، ثم تقلل من خلال حساب عدد المرات التي ظهرت فيها كل منها (مبسط):

  192.168.1.1,FireFox x.x,username1
  192.168.1.1,FireFox x.x,username1
  192.168.1.2,FireFox y.y,username1
  192.168.1.7,IE 7.0,username1

يمكنك استخراج المتصفحات، وتجاهل الإصدار، باستخدام عملية الخريطة للحصول على هذه القائمة:

FireFox
FireFox
FireFox
IE

ثم تقليل للحصول على هذا: Firefox، 3 IE، 1

هل Mapreduce الطريقة الأكثر ذكاء للقيام بذلك؟

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

للقيام بهذا النوع من الأشياء، أفضل استخدام قوائم انتظار الرسائل، ومحرك تخزين ثابت (مثل قاعدة البيانات)، مع معالجة العملاء الذين يسحبون العمل من قوائم الانتظار، وأداء الوظيفة، ودفع النتائج إلى قائمة انتظار أخرى، مع وظائف لا يتم تنفيذها في بعض الأطر الزمنية المتاحة للآخرين لمعالجة. سيكون هؤلاء العملاء برامج صغيرة تفعل شيئا محددا.

يمكنك أن تبدأ مع عميل واحد، وتوسيع 1000 ... يمكنك حتى أن يكون لديك عميل يعمل كشعار شاشة على جميع أجهزة الكمبيوتر على شبكة LAN، وتشغيل 8 عملاء على خوادمك الثمانية الأساسية، 2 على أجهزة الكمبيوتر الأساسية المزدوجة ...

مع سحب: هل يمكن أن يكون لديك 100 أو 10 عملاء يعملون، يمكن أن تحتوي الأجهزة متعددة النسبة على عملاء متعددين يعملون، وأيا كان ينتشر العميل متاحا للخطوة التالية. ولا تحتاج إلى القيام بأي تجزئة أو مهمة للعمل الذي يتعين القيام به. انها ديناميكية 100٪.

http://img355.imageshack.us/img355/7355/mqlogs.png.png.

كيف يمكنك تقسيم ملفات سجل الويب بين مثيلات الحوسبة المختلفة؟

حسب عدد العناصر أو الخطوط إذا كان برنامج تسجيل الدخول المستندة إلى النصوص.

من أجل اختبار MAPREDUCE، أود أن أقترح أنك تلعب مع Hadoop.

نصائح أخرى

  • هل يمكن تطبيق مفهوم MAPREDUCE حقا على تحليل Weblogs؟

بالتأكيد. ما نوع البيانات التي تخزنها؟

  • هل Mapreduce الطريقة الأكثر ذكاء للقيام بذلك؟

سيتيح لك الاستعلام عن العديد من آلات السلع في وقت واحد، لذلك نعم قد يكون مفيدا. بدلا من ذلك، يمكنك المحاولة شاردينج.

  • كيف يمكنك تقسيم ملفات سجل الويب بين مثيلات الحوسبة المختلفة؟

عموما سوف توزع بياناتك باستخدام خوارزمية التجزئة ثابتة, ، لذلك يمكنك بسهولة إضافة المزيد من الحالات لاحقا. يجب أن تكون التجزئة بأي شيء سيكون مفتاحك الأساسي في قاعدة بيانات عادية. يمكن أن يكون معرف مستخدم، عنوان IP، إحالة، صفحة، الإعلان؛ كل ما هو موضوع تسجيل الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top