ضرب ماتریس ها با استفاده از MapReduce – بخش اول

در سری مقالات گذشته مربوط به آموزش مدل برنامه نویسی MapReduce در هدوپ ، به آموزش و اجرای مثال شمارش تعداد کلمات پرداختیم که ماهیت اولیه این مدل را معرفی می کرد. در واقع این مثال یکی از مثال های اولیه و اساسی در یادگیری و کار با این موتور پردازشی می باشد.

در بخش سوم این مقاله از سری مقالات آموزش MapReduce قصد داریم مثال ضرب ماتریس را با استفاده از این مدل در هدوپ آموزش بدهیم. در این بخش به ماهیت و چگونگی تحلیل مثال ضرب ماتریس ها و در بخش بعدی به چگونگی پیاده سازی آن پرداخته می شود.

کاربرد ماتریس ها بر کسی پوشیده نیست. از بسیاری از علوم مهندسی گرفته تا فیزیک نظری از ماتریس ها برای تحلیل بسیاری از مسائل روزمره خود بهره می برند. اما چگونگی انجام عملیات مرتبط با ماتریس ها نظیر جمع،تفریق،تقسیم و ضرب آنها از نقش آنها در علوم مختلف مهم تر است. همیشه ماتریس ها محدود به ۳ یا ۴ سطر یا ستون نمی شوند و گاهی هر ماتریس براساس کاربردی که دارند به اندازه ای می رسند که به طور مثال ضرب آنها ماه ها به طول می انجامد. با استفاده از مدل MapReduce می توان عملیات ضرب ماتریس را به صورت موازی و توزیع شده مبتنی بر بستر هدوپ با سرعت و توانایی بالاتری اجرا کرد.

همانطور که در بخش قبل ذکر شد مدل MapReduce از دو کلاس اساسی تشکیل می شود: 1.Map و 2. Reduce

در فاز Map می بایست مقادیر ورودی ما تبدیل به کلید-مقدار ها شوند و در فاز Reduce این کلید-مقدار ها با هم ادغام شده و عملیاتی بر روی آنها انجام می شود و خروجی ما به فرم کلید-مقدار نمایش می یابد.(البته در این بین فازهای دیگری نظیر Combine و Shuffle وجود دارد که در صورت نیاز می توان آنها را به کار برد.)

دو ماتریس زیر را در نظر بگیرید:

mat5


در مرحله اول تمامی درایه های ماتریس اول و دوم می بایست به کلید-مقدار تبدیل شوند. چگونه؟ هر درایه ما در ماتریس دارای سطر و ستون و مقدار است. در واقع کلیدهای ما همان نام ماتریس،شماره سطر و شماره ستون و مقدار ما عددی است که در آن درایه وجود دارد. بر همین اساس،در مرحله Map دو ماتریس ما تبدیل به کلید-مقدار شده و آماده پردازش توسط کلاس Reduce می شوند:

A,0,0,value
A,0,1,value
A,0,2,value
A,1,0,value
A,1,1,value
A,1,2,value
A,2,0,value
A,2,1,value
A,2,2,value
B,0,0,value
B,0,1,value
B,0,2,value
B,1,0,value
B,1,1,value
B,1,2,value
B,2,0,value
B,2,1,value
B,2,2,value


در نهایت در مرحله Reduce مقادیر ماتریس A با مقادیر B ضرب شده و نتیجه به صورت کلید-مقدار با نام C ذخیره می شوند. 

در بخش بعدی این مقاله به پیاده سازی عملی این مثال پرداخته می شود. منتظر بخش بعدی باشید.

نویسنده: مبین رنجبر

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

لیست نظرات

  1. با سلام ممنون از اموزش خوبتون

    میشه لطفا قسمت دوم  (پیاده سازی) رو هر چه سریعتر قرار بدین؟

    من نیاز فوری دارم! سپاس

     

پاسخ دهید

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