کی و کجا باید از Map Reduce استفاده کرد؟

مدرس: مسعود کاویانی

آیا مدل برنامه نویسی Map Reduce به درد تمام مسائل این دنیا می‌خورد؟ قطعا خیر. پس در کجاها می‌توان از Map Reduce و این مدل برنامه نویسی موازی استفاده کرد؟ در این درس می‌خواهیم به این سوال پاسخ داده و ببینیم کجا‌ها بهتر است از این روش استفاده کنیم.

دلیل اصلی که شرکت Google از Map Reduce برای انجام عملیات خود استفاده کرد، ضرب ماتریس در بردار بود. این عملیات ریاضی احتمالا برای شما آشناست. یک ماتریس و یک بردار که می‌خواهیم آن‌ها را در یکدیگر ضرب کنیم و حاصل یک بردار جدید است. این کار که در ابتدا به نظر بدون کاربرد می‌رسد، یکی از عملیات اصلی در الگوریتم Page Rank است. همان الگوریتمی که هسته اصلی موتور جستجوی گوگل برای رتبه بندی سایت‌ها و صفحات آن سایت‌ها را تشکیل می‌دهد. در درس‌های بعد خواهیم که که ضرب یک ماتریس در بردار و همچنین ضرب دو ماتریس، می‌تواند کاملا توسط مدل برنامه نویسی Map Reduce به صورت موازی اجرا شود.

یکی دیگر از کاربردهای Map Reduce، می‌تواند در جبر رابطه ای باشد. جبر رابطه‌ای زیاد سخت نیست، یعنی اصلا سخت نیست. اگر با پایگاه داده‌های رابطه‌ای مانند MySql، Sql Server، Oracle، PostgreSql یا Sqlite کار کرده باشید، منطق آن‌ها را می‌دانید. این منطق برخواسته از جبر رابطه‌ای یا همان Relational Algebra آمده است. در واقع علمیات مختلفی مانند Select، Where، Join، Union، Intersect و… را می‌توانید به صورت موازی توسط عملیات Map Reduce انجام دهید. در واقع یکی از کاربرد‌های اصلی Map Reduce می‌تواند همین عملیاتی باشد که روزانه توسط این دست از پایگاه داده‌ها انجام می‌شود و پرس و جو (Query)هایی که برای انجام عملیات مورد نظر خود انجام می‌دهید را می‌توان از طریق Map Reduce به صورت موازی و بهینه بر روی خوشه‌ای از کامپیوتر‌ها اجرا نمود. برای مثال Spark Sql و یا Apache Hive می‌تواند نمونه‌ی خوبی از پیاده سازی‌های Sql بر بستر سیستم توزیع شده باشد.

منابع این بحث و اطلاعات بیشتر

» فصل دوم کتاب Mining Massive Datset از دانشگاه Stanfort

» اطلاعات بیشتر درباره الگوریتم PageRank

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

5 دیدگاه دربارهٔ «کی و کجا باید از Map Reduce استفاده کرد؟»

  1. آموزش خوبی بود برای پیدا کردن یک دیدگاه کلی از این مدل و آشنایی با کلید واژه های آن. ممنونم

  2. بسيار مطالب خوب و اموزنده اي بود واسه ارائه ي مقاله ي انتخابيم بسيار كمك كننده بود ممنونم

دیدگاهتان را بنویسید

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