MapReduce

از OCCC Wiki
پرش به ناوبری پرش به جستجو

Mapreduce یک مدل برنامه نویسی و یک پیاده سازی مرتبط برای پردازش و تولید مجموعه داده های بزرگ است. کاربران یک تابع map() تعیین می کنند که یک جفت کلید / مقدار را برای تولید یک مجموعه جفت کلید / مقدار میانی پردازش می کند و یک تایع reduce() که تمام مقادیر میانی را همراه با کلید میانی یکسان ادغام می کند.[۱] MapReduce متدی برای استاندار سازی روش های پیاده سازی داده های موازی انبوه در پردازش شبکه ای می باشد. داده های ورودی به چندین بلوک پردازشی شکسته می شوند که هر بلوک توسط یک تابع map() پردازش می شود و سپس نتایج تمامی بلوک ها توسط تابع reduce() ترکیب می شوند. MapReduce قلب هادوپ است. پارادیم برنامه نویسی است که اجازه مقیاس پذیری گسترده در سراسر صدها یا هزاران سرور را در یک خوشه هادوپ می دهد. MapReduce در حقیقت به دو وظیفه جداگانه و مجزا که در برنامه های هادوپ انجام می شود، اشاره می کند. اولین کار، نگاشت (map) است که یک مجموعه داده را می گیرد و آن را به مجموعه دیگری از داده تبدیل می کند، که در آن عناصر فردی به تاپل ها شکسته می شوند (جقت کلید/مقدار). کار کاهش (reduce) خروجی را از یک نگاشت می گیرد و تاپل های داده را به یک مجموعه تاپل کوچک تر ترکیب می کند. همانطور که ترتیب نام MapReduce اشاره دارد، کار کاهش همیشه بعد از کار نگاشت انجام می شود.[۲]