آموزش MapReduce به زبان ساده – بخش اول

در این نوشته ما قصد داریم عملکرد MapReduce  را با استفاده از مثال Word Count به زبان بسیار ساده بیان کنیم .در ابتدا فرض کنید ما 5 میلیون صفحه تایپ شده داریم که نیاز است هیستوگرام تعداد کلمات آن را محاسبه کنیم. در شکل زیر به نمونه ای از عملیات اشاره شده است :

1

در شکل زیر مراحل شمارش 5 میلیون کلمه نمایش داده شده است

2

 

تا این مرحله ما عملا تعداد کلمات را شمارش کردیم که اصطلاحا آن را Map کردن می نامیم. 

بعد از انجام این مراحل تعداد کلمات بصورت جداگانه محاسبه شده اند و هیستوگرام جداگانه این فایلها کمکی به حل مسئله نکرده است. پس ما باید به دنبال روشی باشیم که کلمات یکسان را در کامپیوترهای مختلف جمع آوری کرده و آنها را به عنوان یک هیستوگرام واحد نمایش دهد. در شکل زیر روش حل این مسئله که با نام Reduce کردن معروف است نمایش داده شده است.

3

همانگونه که در شکل بالا مشاهده می کنید خطها با رنگهای یکسان نشان دهنده کلمات مشابه می باشند که در مرحله Map بر روی کامپیوترهای مختلف توزیع شده اند. در مرحله مرتب سازی کلمات گام به گام مرتب می شوند و در مرحله آخر کلمات شمرده می شوند.

به کل مراحل ذکر شده MapReduce می گویند.

مدل برنامه نویسی در MapReduce :

برنامه نویس 2 تابع Map و Reduce را به شکل زیر تعریف می کند :

map (in_key, in_value) -> list(out_key, intermediate_value)

تابع Map کلمات را از ورودی گرفته و آنها را برروی پردازشگرهای مختلف توزیع می کند سپس هر پردازشگر داده های گرفته شده را بصورت مستقل شمارش می کند و آنها را بصورت Key/Value روی  ذخیره می کند. همانطور که در تصاویر قبلی مشاهده کردید مجموع داده ها باید برروی یک پردازش واحد جمع آوری و ایندکس شود. برای این عمل ما از تا Reduce  استفاده می کنیم.

reduce (out_key, list(intermediate_value)) -> list(out_value)

در تابع مذکور هر Key مجموعه ای از شمارشها در پردازشگرهای مختلف دارد که آنها را با یکدیگر جمع می کند و به صورت Out_value در خروجی نشان می دهد.

در بخش های بعدی به چگونگی عملیات MapReduce بیشتر می پردازیم ، ما را دنبال کنید…

نویسنده: جمال مکتوبیان

از سرورهای ما برای اجرای پروژه های داده های کلان خود بدون اینکه درگیر پیچیدگی نصب شوید استفاده کنید. برای سفارش اینجا را کلیک کنید.
ما حتی می توانیم کلاستر و سرورهای هدوپ را برای شما ایجاد کنیم. برای درخواست راه اندازی اینجا را کلیک کنید.
اگر نیاز به مشاوره و یا کلاس آموزشی داشتید به اینجا مراجعه کنید.

لیست نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *