آیا مدل برنامه نویسی Map Reduce به درد تمام مسائل این دنیا میخورد؟ قطعا خیر. پس در کجاها میتوان از Map Reduce و این مدل برنامه نویسی موازی استفاده کرد؟ در این درس میخواهیم به این سوال پاسخ داده و ببینیم کجاها بهتر است از این روش استفاده کنیم.
کمی عمیقتر به Map Reduce نگاه کنیم
در دروس ابتدایی دوره Map Reduce به این دیدگاه رسیدیم که مدل برنامه نویسی Map Reduce به درد چه مسائلی میخورد. همچنین یک مثال کاربردی را مشاهده کردیم و یک دید کلی از این مدل برنامه نویسی پیدا کردیم. حالا میخواهیم کمی عمیقتر به نحوه کارکرد یک سیستم، که از مدل Map Reduce استفاده میکند توجه کنیم و ببینیم سیستم هایی مانند Hadoop یا Spark که مناسب برای پیاده سازی مدل های Map Reduce هستند چه گونه کار میکنند؟
جابهجا پذیری در عملیات MapReduce
درس قبل را و مثال آن را به یاد بیاورید. یک مجموعه ۱۰۰۰تایی متن خبر داشتیم و میخواستیم تعداد تکرار کلمات مختلف را در این متون پیدا کنیم. این کار را با استفاده از روش MapReduce به صورت موازی اجرا کردیم. در این درس میخواهیم به یک نکته بپردازیم و آن عملیات جا به جا پذیر (commutative) و انجمنی (associative) است.
Map Reduce چیست؟ (همراه با مثال عملی)
همانطور که در درس قبل مشاهده کردید، مدل برنامه نویسی Map Reduce جهت انجام عملیات پردازشی موازی بر روی خوشهای از کامپیوترها (Computer Cluster) کاربرد دارد. در واقع این مدل برنامه نویسی، خود از دو قسمت Map یا همان نگاشت و Reduce یا همان کاهش تشکیلی شده است. در این درس میخواهیم بفهمیم که این دو قسمت و درنهایت این مدل برنامه نویسی چگونه کار میکنند.
چرا و کجا باید از Map Reduce استفاده کرد؟
احتمالاً با برنامه نویسی موازی یا همان Parallel Programming آشنا باشید. در برنامه نویسی موازی، یک برنامه در یک زمان میتواند چند کار و وظیفه را با هم انجام دهد. تا قبل از این معمولاً برنامههای موازی بر روی یک کامپیوتر اجرا میشد، این در حالی است که مدل برنامه نویسی Map Reduce برای این به وجود آمده است که تا حد امکان کارها و وظایفی را که میتوانند به صورت موازی با هم اجرا شوند، در کامپیوترهای مختلف به صورت موازی اجرا کند.