آشنایی با سبک برنامه نویسی Map Reduce و مدل محاسبات توزیع شده

در دنیایی زندگی می‌کنیم که حجم تولید داده‌ها در آن بسیار زیاد شده است. شاید قبل از این، تمامی داده‌های مورد نیاز یک برنامه خاص را می‌شد بر روی یک کامپیوتر ذخیره کرد و در مواقع لازم از آن استفاده نمود. اما در روزگار جدید، انجام چنین عملی برای بسیاری از برنامه‌های کاربردی که روزانه با آن‌ها سر و کار داریم غیر ممکن است. نرم افزارهایی مانند تصاویر موجود در اینستاگرام، پیام‌های ذخیره شده در تلگرام، داده‌های وب‌سایت‌ها در گوگل و… نمونه‌ای ساده از این سیستم‌ها هستند که داده‌های موجود در آن‌ها به هیچ وقت نمی‌توانند بر روی یک کامپیوتر خاص (هر چقدر هم بزرگ) ذخیره شوند. حتی داده‌های موجود در سیستم‌های ایرانی (آن‌هایی که کاربران زیادی دارند) نیز با چنین مشکلی مواجه هستند. بحث ذخیره را اگر کنار بگذاریم، بحث محسابات جلو می‌آید. پردازش یک همچین حجم عظیمی از داده‌ها، قطعا با روش‌های مرسوم و سنتی برنامه نویسی، امکان پذیر نیست و یک محاسبات ساده بر روی این حجم از اطلاعات، ممکن است سالیان سال به طول بینجامد.

در این دوره، ما سعی داریم تا مدل محاسبات و برنامه‌نویسی Map Reduce را با هم مرور کنیم و ببینیم که این مدل، چگونه توانسته است مشکلات موجود در سیستم‌هایی با حجم عظیم داده‌ها و نیاز به پردازش موازی (Parallel) را حل کند.

مبنای این دوره، فصل دوم کتاب کاویدن داده‌های عظیم است و بر پایه دوره داده‌کاوی دانشگاه استنفورد شکل گرفته است.

درس پیش‌نیاز ۱ سیستم توزیع شده چیست؟
درس پیش‌نیاز ۲ سیستم فایل توزیع شده چیست؟
درس ۱ چرا و کجا باید از Map Reduce استفاده کرد؟
درس ۲ Map Reduce چیست؟ (همراه یک مثال عملی) 
درس ۳ جابه‌جا پذیری در عملیات MapReduce
درس ۴ کمی عمیق‌تر به Map Reduce نگاه کنیم
درس ۵ کی و کجا باید از Map Reduce استفاده کنیم؟